<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>放你一天假</title>
    <description></description>
    <link>http://joedanny.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>获取工程路径(jar和普通文件结构通用) -- java</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/175377" style="color:red;">http://joedanny.javaeye.com/blog/175377</a>&nbsp;
          发表时间: 2008年03月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p><pre name="code" class="java">/**
	 * 获取工程所在目录
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	private static String getProjectPath() throws UnsupportedEncodingException{
		URL url = [ThisClass].class.getProtectionDomain().getCodeSource().getLocation();
		String filePath = URLDecoder.decode(url.getPath(), &quot;UTF-8&quot;);
		if(filePath.endsWith(&quot;.jar&quot;))
			filePath = filePath.substring(0, filePath.lastIndexOf(&quot;/&quot;) + 1);
		return filePath;
	}</pre>&nbsp;<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/175377#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 24 Mar 2008 12:39:04 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/175377</link>
        <guid>http://joedanny.javaeye.com/blog/175377</guid>
      </item>
          <item>
        <title>答复: 奇怪的Servlet中文乱码问题</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/171411" style="color:red;">http://joedanny.javaeye.com/blog/171411</a>&nbsp;
          发表时间: 2008年03月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">        PrintWriter out=response.getWriter();   
        request.setCharacterEncoding("UTF-8");   
//      response.setContentType(CONTENT_TYPE);   </pre><br /><br />将上面的代码顺序改为如下代码：<br /><pre name="code" class="java">   
        request.setCharacterEncoding("UTF-8");   
        response.setContentType(CONTENT_TYPE);   
        PrintWriter out=response.getWriter();   

//      </pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/171411#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 14 Mar 2008 14:57:09 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/171411</link>
        <guid>http://joedanny.javaeye.com/blog/171411</guid>
      </item>
          <item>
        <title>Resin/Tomcat下使用jstl</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/163584" style="color:red;">http://joedanny.javaeye.com/blog/163584</a>&nbsp;
          发表时间: 2008年02月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>Resin下使用jstl</strong><br /><br /><strong>在Resin2.x下使用jstl</strong><br />Resin从2.1.2版本开始自己实现了JSTL的core和fmt两个TAGLIB。<br />使用Resin2.x自带的JSTL不需要拷贝JAR和TLD文件，也不需要配置web.xml。<br />只要在页面引用就可以了，注意与标准JSTL1.1的区别。<br /><pre name="code" class="java">&lt;%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
&lt;%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %></pre><br />需要注意的是：<br />&lt;c:out value="${myvar}"/> 是 JSTL 语法 , resin2.1.x版本支持，<br />而 ${myvar} 是 JSP 2.0 语法 resin 3.0 之后支持<br />在resin2.1.x中使用会产生java.lang.NoClassDefFoundError: javax/servlet/jsp/el/VariableResolver错误<br /><strong>在Resin3.x下使用jstl（未经验证）</strong><br />将resin.conf文件的：<br /><pre name="code" class="xml">&lt;servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet"/></pre><br />改成：<br /><pre name="code" class="xml">&lt;servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet">
    &lt;init enable="false"/>
&lt;/servlet></pre><br />在resin.conf文件中添加你的webapp的配置，注意要加上<br /><pre name="code" class="xml">&lt;jsp fast-jstl="false"/>
&lt;web-app id="/jstltest" document-directory="jstltest">&lt;jsp fast-jstl="false"/>&lt;/web-app></pre><br />在jsp引用中<br /><pre name="code" class="java">&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %></pre><br /><span style="color: darkblue">使用标准的JSTL1.1</span><br />需要将JAR包（jstl.jar和standard.jar）拷贝到WEB-INF/lib目录下，不需要拷贝TLD文件，不需要配置web.xml。<br />在页面这样引用<br /><pre name="code" class="java">&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %></pre><br /><span style="color: darkblue">使用标准的JSTL1.0</span><br />需要将JAR包（jstl.jar和standard.jar）拷贝到WEB-INF/lib目录下，拷贝需要的TLD文件。<br />配置web.xml<br /><pre name="code" class="xml">&lt;taglib>
&lt;taglib-uri>/tags/jstl-c&lt;/taglib-uri>
&lt;taglib-location>/WEB-INF/tld/c.tld&lt;/taglib-location>
&lt;/taglib>
&lt;taglib>
&lt;taglib-uri>/tags/jstl-fmt&lt;/taglib-uri>
&lt;taglib-location>/WEB-INF/tld/fmt.tld&lt;/taglib-location>
&lt;/taglib></pre><br />在jsp引用<br /><pre name="code" class="java">&lt;%@ taglib uri="/tags/jstl-c" prefix="c" %>
&lt;%@ taglib uri="/tags/jstl-fmt" prefix="fmt" %></pre><br /><br /><strong>Tomcat下使用JSTL1.0</strong><br />需要将JAR包（jstl.jar和standard.jar）拷贝到WEB-INF/lib目录下，拷贝需要的TLD文件。<br />配置web.xml<br /><pre name="code" class="xml">&lt;taglib>
&lt;taglib-uri>/tags/jstl-c&lt;/taglib-uri>
&lt;taglib-location>/WEB-INF/tld/c.tld&lt;/taglib-location>
&lt;/taglib>
&lt;taglib>
&lt;taglib-uri>/tags/jstl-fmt&lt;/taglib-uri>
&lt;taglib-location>/WEB-INF/tld/fmt.tld&lt;/taglib-location>
&lt;/taglib></pre><br />在jsp引用<br /><pre name="code" class="java">&lt;%@ taglib uri="/tags/jstl-c" prefix="c" %>
&lt;%@ taglib uri="/tags/jstl-fmt" prefix="fmt" %></pre><br /><br /><strong>Tomcat下使用JSTL1.1</strong><br />需要将JAR包（jstl.jar和standard.jar）拷贝到WEB-INF/lib目录下，不需要拷贝TLD文件，不需要配置web.xml。<br />在页面这样引用<br /><pre name="code" class="java">&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %></pre><br /><br />需要注意的是：<br /><span style="color: red">JSTL1.0是需要Servlet2.3和JSP1.2的。<br />JSTL1.1是需要Servlet2.4和JSP2.0的。</span><br /><br />${myvar} 是JSP 2.0 语法，tomcat5以后的版本都支持JSP2.0也就是都支持EL语言。<br />但是为什么我们的应用程序发布到tomcat5服务器上后还是不支持EL语言呢，而且甚至不能发布成功。<br />这里涉及到web.xml文件的迁移问题<br />使用<br /><pre name="code" class="xml">&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"></pre><br />是JSP1.2的语法，不支持EL语言。<br />需要把文件头换成<br /><pre name="code" class="xml">&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4"></pre><br />或者在每个jsp页面添加<br /><pre name="code" class="java">&lt;%@ page isELIgnored="false" %></pre><br /><br /><strong>转自: </strong><a href="http://xying.spaces.live.com/Blog/cns!C20F968B904CD5D6!130.entry" target="_blank">http://xying.spaces.live.com/Blog/cns!C20F968B904CD5D6!130.entry</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/163584#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Feb 2008 11:42:03 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/163584</link>
        <guid>http://joedanny.javaeye.com/blog/163584</guid>
      </item>
          <item>
        <title>使用Jetty作为嵌入式服务器</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/163296" style="color:red;">http://joedanny.javaeye.com/blog/163296</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          需要最少的包：<br />commons-logging.jar<br />javax.servlet.jar<br />org.mortbay.jetty.jar<br />org.mortbay.jmx.jar<br /><br /><pre name="code" class="java">
//代码：以嵌入模式启动Jetty
import org.mortbay.http.HttpContext;
import org.mortbay.http.HttpServer;
import org.mortbay.http.SocketListener;
import org.mortbay.http.handler.ResourceHandler;

public class JettySample {
   public static void main(String[] args) throws Exception
   {
      //创建Jetty HttpServer对象
      HttpServer server = new HttpServer();
      //在端口8080上给HttpServer对象绑上一个listener，使之能够接收HTTP请求
      SocketListener listener = new SocketListener();
      listener.setPort(8080);
      server.addListener(listener);
  
      //创建一个HttpContext，处理HTTP请求。
      HttpContext context = new HttpContext();
      //用setContextPath把Context映射到（/web）URL上。
      context.setContextPath("/web");
      //setResourceBase方法设置文档目录以提供资源
      context.setResourceBase("C:\\j2sdk1.4.1_05");
      //添加资源处理器到HttpContext，使之能够提供文件系统中的文件
      context.addHandler(new ResourceHandler());
      server.addContext(context);
      //启动服务器
      server.start();
   }
}</pre><br /><br />Jetty的运行速度较快，而且是轻量级的，可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境，顺利实现自动化测试。<br /> <br /><br />转自: http://blog.csdn.net/wyingquan/archive/2006/08/23/1109862.aspx
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/163296#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 11:43:26 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/163296</link>
        <guid>http://joedanny.javaeye.com/blog/163296</guid>
      </item>
          <item>
        <title>svn合并版本库</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/161020" style="color:red;">http://joedanny.javaeye.com/blog/161020</a>&nbsp;
          发表时间: 2008年02月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>摘要:<br />&nbsp; 现在有需求,需要把Windows下的版本库和Linux上的合并.要求Win下的project1和project2放到Linux下repose2/202.108.22.43的子文件src中.(当然版本历史记录需要保留)<br /></strong><br /><strong>一. 版本库结构</strong><br />&nbsp; Windows下有版本库 d:/svn<br /><br />&nbsp; <strong>结构为</strong><br />&nbsp; <pre name="code" class="java">
  /project1
      /src
      ...
      /WEB-INF
      ...
  /project2
      /src
      ...
      /WEB-INF
      ...</pre><br />&nbsp; Linux下有版本库 /Repositories/repos1 , /Repository/repos2 ... /Repository/repos5<br />&nbsp; <br /> <strong>/Repository/repos2的结构为</strong><br /> <pre name="code" class="java"> 
 /202.108.22.43
      /apache2
      /resin
      /server
      ...
  /202.108.22.38
  ...</pre><br />&nbsp; 现在有需求,需要把Windows下的版本库和Linux上的/Repository/repos2合并.要求Win下的project1和project2放到Linux下repose2/202.108.22.43的子文件src中.(当然版本历史记录需要保留)<br /><br />&nbsp; <strong>合并后Linux下的/Repository/repos2看起来应该像这样</strong><br />&nbsp; <pre name="code" class="java"> /202.108.22.43
      /apache2
      /resin
      /server
      /src   //新创建的文件夹
          /project1   //Win下的源码
               /src
                ...
               /WEB-INF
               ...
          /project2
               /src
               ...
               /WEB-INF
               ...       //end
      ...
  /202.108.22.38
  ...</pre><br /><strong>二.合并版本库</strong>(需要相关权限)<br />&nbsp;&nbsp;&nbsp; 1.导出Windows下的版本库(备份版本库)<br />&nbsp;&nbsp;&nbsp; <pre name="code" class="java">svnadmin dump d:/svn >  project.svn_dump</pre><br />&nbsp;&nbsp;&nbsp; 2.备份Linux下的版本库(导出版本库)<br />&nbsp;&nbsp;&nbsp; <pre name="code" class="java">svnadmin dump /Repository/repos2 > repos2.svn_dump</pre><br />&nbsp;&nbsp;&nbsp; 3.在Linux下创建src目录<br />&nbsp;&nbsp;&nbsp; <pre name="code" class="java">svn mkdir -m "源代码" svn://localhost/202.108.22.43/src</pre><br />&nbsp;&nbsp;&nbsp; 4.上传或移动 <strong>project.svn_dump</strong> 到 Linux下,这里放在 '/'目录下.合并版本库<br />&nbsp;&nbsp;&nbsp; <pre name="code" class="java">svnadmin load svn://localhost/202.108.22.43/ --parent-dir src &lt; project.svn_dump</pre><br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; --end--<br />&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 参考资料:<br />&nbsp; 修改已处于 SVN 版本控制下的项目的版本库布局&nbsp; <a href="http://www.rainux.org/2007/11/01/185" target="_blank">http://www.rainux.org/2007/11/01/185</a><br />&nbsp; 使用Subversion进行版本控制 <a href="http://doc.owind.org/svnbook/1.1/" target="_blank">http://doc.owind.org/svnbook/1.1/</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/161020#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 01 Feb 2008 16:15:17 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/161020</link>
        <guid>http://joedanny.javaeye.com/blog/161020</guid>
      </item>
          <item>
        <title>Java 2D API 程序员指南</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/158620" style="color:red;">http://joedanny.javaeye.com/blog/158620</a>&nbsp;
          发表时间: 2008年01月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          转自: <a href="http://www.blogjava.net/leon/archive/2005/09/13/12897.aspx" target="_blank">http://www.blogjava.net/leon/archive/2005/09/13/12897.aspx</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/158620#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 23 Jan 2008 14:17:39 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/158620</link>
        <guid>http://joedanny.javaeye.com/blog/158620</guid>
      </item>
          <item>
        <title>ImageMagick Jmagick jvm crash</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/157987" style="color:red;">http://joedanny.javaeye.com/blog/157987</a>&nbsp;
          发表时间: 2008年01月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">引用</div><div class="quote_div">我也碰到这个问题，解决了。是版本冲突。jMagick更新太慢了。跟不上ImageMagick的更新。<br />当前最新的JMagick 6.2.6要使用ImageMagick 6.2.9，我找了好久没找到，官方已经没有旧版下载。找到一个6.3.0，也可以使用。<br />清用官方推荐的版本搭配。<br />官方版本对照：<br />http://www.yeo.id.au/jmagick/</div><br />转自: http://gceclub.sun.com.cn/NASApp/sme/jive/thread.jsp?forum=8&thread=45242
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/157987#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 21 Jan 2008 12:59:45 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/157987</link>
        <guid>http://joedanny.javaeye.com/blog/157987</guid>
      </item>
          <item>
        <title>汉字拼音对照表</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/156935" style="color:red;">http://joedanny.javaeye.com/blog/156935</a>&nbsp;
          发表时间: 2008年01月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
              首先<a href="../../blog/156511" target="_blank">利用系统自带软件生成汉字和拼音的对照表</a><br />    然后 <a href="../../blog/156922" target="_blank">切割文本内容</a> , <a href="../../blog/156903" target="_blank">匹配正则表达式</a>在<a href="../../blog/156922" target="_blank">这个类里</a>增加下面2个方法<pre name="code" class="java">public void testFileRW() {
		String inFilepath = &quot;拼音文件原位置&quot;;
		String outFilepath = &quot;输出位置&quot;;
		TestFileOperate tfo = new TestFileOperate();
		try {
			String fileContent = tfo.fileReader(inFilepath, &quot;Unicode&quot;, &quot;\n&quot;);

			String[] charactPy = tfo.splitString(fileContent, &quot;\n&quot;);
			// 匹配器
			Pattern p = Pattern.compile(&quot;^[\u4e00-\u9fa5]{1}[\\p{ASCII}]+$&quot;);
			Matcher m;
			StringBuffer sbtemp = new StringBuffer();
			for (int i = 0; i &lt; charactPy.length; i++) {
				m = p.matcher(charactPy[i]);
				if (m.matches()) {
//					System.out.println(&quot;[匹配的字符:]&quot; + m.group() + &quot;[被匹配的字符串:]&quot;
//							+ charactPy[i] + &quot;[被匹配的长度:]&quot;
//							+ charactPy[i].length());
					sbtemp.append(charactPy[i]).append(&quot;\n&quot;);
				}
			}
			tfo.fileWriter(outFilepath, &quot;Unicode&quot;, sbtemp.toString(),
							1 * 1024 * 1024);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 测试汉字拼音对照的正则匹配
	 * 
	 */
	public void vtestStrsplit() {
		// String inFilepath = &quot;拼音文件原位置&quot;;
		TestFileOperate tfo = new TestFileOperate();
		try {
			// String fileContent = tfo.fileReader(inFilepath, &quot;Unicode&quot;, &quot;\n&quot;);
			String fileContent = &quot;\nce3=p10+p20+p30\n[Text]\n啊a\n&quot;
					+ &quot;錒a\n阿爸aba\n阿昌achang&quot;;
			String[] charactPy = tfo.splitString(fileContent, &quot;\n&quot;);

			Pattern p = Pattern.compile(&quot;^[\u4e00-\u9fa5]{2,}[\\p{ASCII}]+$&quot;);
			// Matcher m = p.matcher(fileContent);
			Matcher m;
			m = p.matcher(&quot;阿昌achang&quot;);
			if (m.matches()) {
				System.out.println(&quot;1&quot;);
			}
			for (int i = 0; i &lt; charactPy.length; i++) {
				m = p.matcher(charactPy[i]);
				if (m.lookingAt()) {
					System.out.println(&quot;匹配的字符:&quot; + m.group() + &quot;\n被匹配的字符串:&quot;
							+ charactPy[i] + &quot;[被匹配的长度:]&quot;
							+ charactPy[i].length());
				}
			}
			// while (m.find()){
			// MatchResult result = m.toMatchResult();
			// String strgp = result.group();
			// System.out.println(strgp);
			// }
		} catch (Exception e) {
			e.printStackTrace();
		}
	}</pre>  <br />&nbsp;&nbsp;&nbsp; 按照规则最后只留下符合 一个汉字后面跟着其拼音 的内容.匹配前的汉字拼音对照表共有56662条,匹配后的汉字拼音对照表共有27901条.<br />&nbsp;&nbsp;&nbsp; 匹配前的文件为附件里面的<span style="color: #ff0000"> WINPY 字符集为Unicode.TXT</span> 文件, 匹配后的文件为附件里面的 <span style="color: #ff0000">WINPYTemp 字符集为Unicode.TXT</span> 文件.<br /><p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/156935#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Jan 2008 16:13:06 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/156935</link>
        <guid>http://joedanny.javaeye.com/blog/156935</guid>
      </item>
          <item>
        <title>java切割文本内容</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/156922" style="color:red;">http://joedanny.javaeye.com/blog/156922</a>&nbsp;
          发表时间: 2008年01月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这基本上是一个工具类.<br /><pre name="code" class="java">/*
 * (#)TestFileOperate.java 1.0 2008-1-16 2008-1-16 
 */

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import junit.framework.TestCase;
import junit.framework.TestResult;

/**
 * 文本文件内容切割,分割
 * @author QiaoDuanni
 * @version 1.0, 2008-1-16 2008-1-16
 * @since JDK5
 */
public class TestFileOperate extends TestCase {

	//private static final Logger logger = Logger
	//		.getLogger(TestFileOperate.class);

	/**
	 * 文本文件读取
	 * 
	 * @param inFilepath
	 *            要读取的文件路径及名称
	 * @param inEncoding
	 *            要读取的文件的编码方式
	 * @param endLineSeparator
	 *            读取一行后要在行尾追加的
	 * @return 文件内容
	 * @throws IOException
	 */
	public String fileReader(String inFilepath, String inEncoding,
			String endLineSeparator) throws IOException {
		BufferedReader bin = null;
		if (endLineSeparator == null)
			endLineSeparator = "";
		System.out.println("inFilepath:" + inFilepath + "\ninEncoding:"
				+ inEncoding + "\n行尾追加后缀:" + endLineSeparator);
		// 文件字符集
		String enc = System.getProperty("file.encoding");
		System.out.println("文件默认字符集:" + enc);
		FileInputStream inputFile = new FileInputStream(inFilepath);
		InputStreamReader in = new InputStreamReader(inputFile, inEncoding);
		bin = new BufferedReader(in);
		StringBuffer result = new StringBuffer();
		String temp = "";
		while ((temp = bin.readLine()) != null) {
			result.append(temp).append(endLineSeparator);
		}
		bin.close();
		return result.toString();
	}

	/**
	 * 文件写入
	 * 
	 * @param outFilepath
	 *            要写入的文件路径及名称
	 * @param outEncoding
	 *            输出的文件编码方式
	 * @param fileContent
	 *            输入的内容
	 * @param flushSize
	 *            当输入多大时刷新一次缓冲区.默认为fileContent的大小
	 * @return
	 * @throws IOException
	 */
	public String fileWriter(String outFilepath, String outEncoding,
			String fileContent, int flushSize) throws IOException {
		if (!new File(outFilepath).getParentFile().isDirectory()) {
			new File(outFilepath).getParentFile().mkdirs();
			new File(outFilepath).createNewFile();
			System.out.println("文件目录路径及文件不存在,创建!" + outFilepath);
		}
		System.out.println("outFilepath:" + outFilepath + "\noutEncoding:"
				+ outEncoding);
		BufferedWriter bout = null;
		System.out.println("flushSize大小(改变前):" + flushSize);
		if (flushSize > fileContent.length() || flushSize == 0)
			flushSize = fileContent.length();

		FileOutputStream outputFile = new FileOutputStream(outFilepath);
		OutputStreamWriter out = new OutputStreamWriter(outputFile, outEncoding);
		bout = new BufferedWriter(out);

		int j = fileContent.length() / flushSize;
		String temp;
		System.out
				.println("flushSize大小:" + flushSize + "\nfileContent.length():"
						+ fileContent.length() + "\nj:" + j);
		for (int i = 0; i &lt; j; i++) {
			temp = fileContent.substring(flushSize * i, flushSize * (i + 1));
			bout.write(temp);
			bout.flush();
			System.out.print("[刷新缓冲" + i + "] ");
		}
		bout.close();
		return null;
	}

	/**
	 * 根据给定的正则表达式的匹配来拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split方法。
	 * 因此，结果数组中不包括结尾空字符串。
	 * 
	 * 例如，字符串 "boo:and:foo" 产生带有下面这些表达式的结果：
	 * 
	 * Regex 结果 : { "boo", "and", "foo" } o { "b", "", ":and:f" }
	 * 
	 * @param source
	 *            要拆分的字符串
	 * @param regex
	 *            定界正则表达式
	 * @return 字符串数组，根据给定正则表达式的匹配来拆分此字符串，从而生成此数组。
	 */
	public String[] splitString(String source, String regex) {
		return source.split(regex);
	}

	/**
	 * @see junit.framework.TestCase#run()
	 */
	@Override
	public TestResult run() {
		return super.run();
	}

	/**
	 * @see junit.framework.TestCase#tearDown()
	 */
	@Override
	protected void tearDown() throws Exception {
		super.tearDown();
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	}

}</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/156922#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Jan 2008 15:52:41 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/156922</link>
        <guid>http://joedanny.javaeye.com/blog/156922</guid>
      </item>
          <item>
        <title>匹配Unicode字符的正则表达式</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/156903" style="color:red;">http://joedanny.javaeye.com/blog/156903</a>&nbsp;
          发表时间: 2008年01月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这里是几个主要非英文语系字符范围(google上找到的):<br /><pre name="code" class="java">
2E80～33FFh：中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符，中日韩的符号、标点、带圈或带括符文数字、月份，以及日本的假名组合、单位、年号、月份、日期、时间等。

3400～4DFFh：中日韩认同表意文字扩充A区，总计收容6,582个中日韩汉字。

4E00～9FFFh：中日韩认同表意文字区，总计收容20,902个中日韩汉字。

A000～A4FFh：彝族文字区，收容中国南方彝族文字和字根。

AC00～D7FFh：韩文拼音组合字区，收容以韩文音符拼成的文字。

F900～FAFFh：中日韩兼容表意文字区，总计收容302个中日韩汉字。

FB00～FFFDh：文字表现形式区，收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。</pre><br /><br />&nbsp;&nbsp;&nbsp; 比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[\u3400-\u9FFF]+$<br />理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异<br />再到msn.co.jp复制了个'お', 也不得行..<br /><br />&nbsp;&nbsp;&nbsp; 然后把范围扩大到^[\u2E80-\u9FFF]+$, 这样倒是都通过了, 这个应该就是匹配中日韩文字的正则表达式了, 包括我們臺灣省還在盲目使用的繁體中文<br /><br />&nbsp;&nbsp;&nbsp; 而关于中文的正则表达式, 应该是^[\u4E00-\u9FFF]+$, 和论坛里常被人提起的^[\u4E00-\u9FA5]+$很接近<br /><br />&nbsp;&nbsp;&nbsp; 需要注意的是论坛里说的^[\u4E00-\u9FA5]+$这是专门用于匹配简体中文的正则表达式, 实际上繁体字也在里面, 我用测试器测试了下'中華人民共和國', 也通过了, 当然, ^[\u4E00-\u9FFF]+$也是一样的结果<br /><br />原文：http://blog.sunmast.com/Sunmast/archive/2004/07/30/799.aspx
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/156903#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Jan 2008 14:46:40 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/156903</link>
        <guid>http://joedanny.javaeye.com/blog/156903</guid>
      </item>
          <item>
        <title>利用系统自带软件生成汉字和拼音的对照表 </title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/156511" style="color:red;">http://joedanny.javaeye.com/blog/156511</a>&nbsp;
          发表时间: 2008年01月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在以下路径下<br /><br /><pre name="code" class="java">C:\Program Files\Windows NT\Accessories</pre><br /><br />有个Imegen.exe文件，这个文件可以把输入法的码表文件转换成普通的文本文件，<br /><br />选择逆转换标签，选择<br /><pre name="code" class="java">C:\WINDOWS\system32\WINPY.MB</pre>文件，然后转换就得到文本格式的汉字和拼音对照表。<br /><br />这里记录下来，供以后使用。 <br /><br /><strong>转自:</strong>http://blog.csdn.net/benq998/archive/2006/08/31/1149055.aspx
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/156511#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 Jan 2008 15:51:46 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/156511</link>
        <guid>http://joedanny.javaeye.com/blog/156511</guid>
      </item>
          <item>
        <title>答复: outofMemoryError:java heap space异常</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/155700" style="color:red;">http://joedanny.javaeye.com/blog/155700</a>&nbsp;
          发表时间: 2008年01月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个现象看起来象某一个页面（或功能）占用了大量的内存。<br />你需要定位它，用JProfiler不容易。<br />我看比较可行的方法是，写一个Filter在web.xml配置进去，拦截所有的web 请求，计算它们的内存使用量；可以用Runtime.getRuntime().getTotal-Runtime.getRuntime().getFree()获得当前内存使用量。
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/155700#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Jan 2008 16:29:04 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/155700</link>
        <guid>http://joedanny.javaeye.com/blog/155700</guid>
      </item>
          <item>
        <title>tomcat5配置C3P0连接池</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/154830" style="color:red;">http://joedanny.javaeye.com/blog/154830</a>&nbsp;
          发表时间: 2008年01月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp; tomcat5一般都用DBCP的连接池，但是DBCP有bug，访问量大以后就经常报错，而且速度变慢。所以改用C3P0连接池，先从<a href="http://sourceforge.net/projects/c3p0/">http://sourceforge.net/projects/c3p0/</a>下载最新的C3P0连接池，将lib下的两个jar文件，连同数据库的JDBC驱动一起复制到tomcat/common/lib文件夹下。</p>
<p>&nbsp;&nbsp; C3P0的文档中说明配置tomcat5要修改server.xml文件，但是怎么修改都不能正常工作。</p>
<p>后发现在conf\Catalina\localhost文件夹下有一个和程序名一样的xml文件，把以下代码加入到这个文件的</p><p>&lt;Context&gt;&lt;/Context&gt;中，</p><br /><pre name="code" class="xml">&lt;Resource name=&quot;jdbc/pooledDS&quot; auth=&quot;Container&quot; type=&quot;com.mchange.v2.c3p0.ComboPooledDataSource&quot; /&gt;
&lt;ResourceParams name=&quot;jdbc/pooledDS&quot;&gt;
&lt;parameter&gt;
&lt;name&gt;factory&lt;/name&gt;
&lt;value&gt;org.apache.naming.factory.BeanFactory&lt;/value&gt;
 &lt;/parameter&gt;
&lt;parameter&gt;
 &lt;name&gt;driverClass&lt;/name&gt;
 &lt;value&gt;org.postgresql.Driver&lt;/value&gt; 
&lt;/parameter&gt; 
&lt;parameter&gt; 
&lt;name&gt;jdbcUrl&lt;/name&gt; 
&lt;value&gt;jdbc:postgresql://localhost/c3p0-test&lt;/value&gt; 
&lt;/parameter&gt; 
&lt;parameter&gt; 
&lt;name&gt;user&lt;/name&gt;
 &lt;value&gt;swaldman&lt;/value&gt;
&lt;/parameter&gt;
&lt;parameter&gt;
&lt;name&gt;password&lt;/name&gt;
&lt;value&gt;test&lt;/value&gt;
&lt;/parameter&gt;
&lt;parameter&gt; 
&lt;name&gt;minPoolSize&lt;/name&gt; 
&lt;value&gt;5&lt;/value&gt;
&lt;/parameter&gt;
&lt;parameter&gt;
&lt;name&gt;maxPoolSize&lt;/name&gt; 
&lt;value&gt;15&lt;/value&gt;
&lt;/parameter&gt;
&lt;parameter&gt;
&lt;name&gt;acquireIncrement&lt;/name&gt;
 &lt;value&gt;5&lt;/value&gt;
 &lt;/parameter&gt;
&lt;/ResourceParams&gt;</pre>&nbsp;<p>&nbsp;&nbsp; 同样的，要在web.xml中加入</p><p>&nbsp;</p><pre name="code" class="xml">&lt;resource-ref&gt; 
&lt;res-ref-name&gt;jdbc/pooledDS&lt;/res-ref-name&gt; 
&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt; 
&lt;res-auth&gt;Container&lt;/res-auth&gt; 
&lt;/resource-ref&gt;</pre><p>&nbsp;</p><p>&nbsp; 程序中的调用和其他连接池是一样的: </p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><pre name="code" class="java">InitialContext ic = new InitialContext(); 
DataSource ds = (DataSource) ic.lookup(&quot;java:comp/env/jdbc/pooledDS&quot;);</pre><strong>&nbsp;转自:</strong><a href="http://blog.csdn.net/lveyo/archive/2006/09/01/1153425.aspx" target="_blank">http://blog.csdn.net/lveyo/archive/2006/09/01/1153425.aspx</a><p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/154830#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 10 Jan 2008 18:13:49 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/154830</link>
        <guid>http://joedanny.javaeye.com/blog/154830</guid>
      </item>
          <item>
        <title>C3P0连接池详细配置</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/154824" style="color:red;">http://joedanny.javaeye.com/blog/154824</a>&nbsp;
          发表时间: 2008年01月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="xml">&lt;c3p0-config&gt;
&lt;default-config&gt;
&lt;!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --&gt;
&lt;property name=&quot;acquireIncrement&quot;&gt;3&lt;/property&gt;

&lt;!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --&gt;
&lt;property name=&quot;acquireRetryAttempts&quot;&gt;30&lt;/property&gt;

&lt;!--两次连接中间隔时间，单位毫秒。Default: 1000 --&gt;
&lt;property name=&quot;acquireRetryDelay&quot;&gt;1000&lt;/property&gt;

&lt;!--连接关闭时默认将所有未提交的操作回滚。Default: false --&gt;
&lt;property name=&quot;autoCommitOnClose&quot;&gt;false&lt;/property&gt;

&lt;!--c3p0将建一张名为Test的空表，并使用其自带的查询语句进行测试。如果定义了这个参数那么
属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作，它将只供c3p0测试
使用。Default: null--&gt;
&lt;property name=&quot;automaticTestTable&quot;&gt;Test&lt;/property&gt;

&lt;!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留，并在下次调用getConnection()的时候继续尝试获取连接。如果设为true，那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false--&gt;
&lt;property name=&quot;breakAfterAcquireFailure&quot;&gt;false&lt;/property&gt;

&lt;!--当连接池用完时客户端调用getConnection()后等待获取新连接的时间，超时后将抛出
SQLException,如设为0则无限期等待。单位毫秒。Default: 0 --&gt;
&lt;property name=&quot;checkoutTimeout&quot;&gt;100&lt;/property&gt;

&lt;!--通过实现ConnectionTester或QueryConnectionTester的类来测试连接。类名需制定全路径。
Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester--&gt;
&lt;property name=&quot;connectionTesterClassName&quot;&gt;&lt;/property&gt;

&lt;!--指定c3p0 libraries的路径，如果（通常都是这样）在本地即可获得那么无需设置，默认null即可
Default: null--&gt;
&lt;property name=&quot;factoryClassLocation&quot;&gt;null&lt;/property&gt;

&lt;!--Strongly disrecommended. Setting this to true may lead to subtle and bizarre bugs.
（文档原文）作者强烈建议不使用的一个属性--&gt;
&lt;property name=&quot;forceIgnoreUnresolvedTransactions&quot;&gt;false&lt;/property&gt;

&lt;!--每60秒检查所有连接池中的空闲连接。Default: 0 --&gt;
&lt;property name=&quot;idleConnectionTestPeriod&quot;&gt;60&lt;/property&gt;

&lt;!--初始化时获取三个连接，取值应在minPoolSize与maxPoolSize之间。Default: 3 --&gt;
&lt;property name=&quot;initialPoolSize&quot;&gt;3&lt;/property&gt;

&lt;!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --&gt;
&lt;property name=&quot;maxIdleTime&quot;&gt;60&lt;/property&gt;

&lt;!--连接池中保留的最大连接数。Default: 15 --&gt;
&lt;property name=&quot;maxPoolSize&quot;&gt;15&lt;/property&gt;

&lt;!--JDBC的标准参数，用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0，则缓存被关闭。Default: 0--&gt;
&lt;property name=&quot;maxStatements&quot;&gt;100&lt;/property&gt;

&lt;!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0 --&gt;
&lt;property name=&quot;maxStatementsPerConnection&quot;&gt;&lt;/property&gt;

&lt;!--c3p0是异步操作的，缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能
通过多线程实现多个操作同时被执行。Default: 3--&gt;
&lt;property name=&quot;numHelperThreads&quot;&gt;3&lt;/property&gt;

&lt;!--当用户调用getConnection()时使root用户成为去获取连接的用户。主要用于连接池连接非c3p0
的数据源时。Default: null--&gt;
&lt;property name=&quot;overrideDefaultUser&quot;&gt;root&lt;/property&gt;

&lt;!--与overrideDefaultUser参数对应使用的一个参数。Default: null--&gt;
&lt;property name=&quot;overrideDefaultPassword&quot;&gt;password&lt;/property&gt;

&lt;!--密码。Default: null--&gt;
&lt;property name=&quot;password&quot;&gt;&lt;/property&gt;

&lt;!--定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意：
测试的表必须在初始数据源的时候就存在。Default: null--&gt;
&lt;property name=&quot;preferredTestQuery&quot;&gt;select id from test where id=1&lt;/property&gt;

&lt;!--用户修改系统配置参数执行前最多等待300秒。Default: 300 --&gt;
&lt;property name=&quot;propertyCycle&quot;&gt;300&lt;/property&gt;

&lt;!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false --&gt;
&lt;property name=&quot;testConnectionOnCheckout&quot;&gt;false&lt;/property&gt;

&lt;!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false --&gt;
&lt;property name=&quot;testConnectionOnCheckin&quot;&gt;true&lt;/property&gt;

&lt;!--用户名。Default: null--&gt;
&lt;property name=&quot;user&quot;&gt;root&lt;/property&gt;

&lt;!--早期的c3p0版本对JDBC接口采用动态反射代理。在早期版本用途广泛的情况下这个参数
允许用户恢复到动态反射代理以解决不稳定的故障。最新的非反射代理更快并且已经开始
广泛的被使用，所以这个参数未必有用。现在原先的动态反射与新的非反射代理同时受到
支持，但今后可能的版本可能不支持动态反射代理。Default: false--&gt;
&lt;property name=&quot;usesTraditionalReflectiveProxies&quot;&gt;false&lt;/property&gt;

&lt;property name=&quot;automaticTestTable&quot;&gt;con_test&lt;/property&gt;
&lt;property name=&quot;checkoutTimeout&quot;&gt;30000&lt;/property&gt;
&lt;property name=&quot;idleConnectionTestPeriod&quot;&gt;30&lt;/property&gt;
&lt;property name=&quot;initialPoolSize&quot;&gt;10&lt;/property&gt;
&lt;property name=&quot;maxIdleTime&quot;&gt;30&lt;/property&gt;
&lt;property name=&quot;maxPoolSize&quot;&gt;25&lt;/property&gt;
&lt;property name=&quot;minPoolSize&quot;&gt;10&lt;/property&gt;
&lt;property name=&quot;maxStatements&quot;&gt;0&lt;/property&gt;
&lt;user-overrides user=&quot;swaldman&quot;&gt;
&lt;/user-overrides&gt;
&lt;/default-config&gt;
&lt;named-config name=&quot;dumbTestConfig&quot;&gt;
&lt;property name=&quot;maxStatements&quot;&gt;200&lt;/property&gt;
&lt;user-overrides user=&quot;poop&quot;&gt;
&lt;property name=&quot;maxStatements&quot;&gt;300&lt;/property&gt;
&lt;/user-overrides&gt;
&lt;/named-config&gt;
&lt;/c3p0-config&gt;</pre><strong>&nbsp;转自:</strong> http://msq.javaeye.com/blog/60387<strong><br /></strong>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/154824#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 10 Jan 2008 18:06:26 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/154824</link>
        <guid>http://joedanny.javaeye.com/blog/154824</guid>
      </item>
          <item>
        <title>答复: c3p0数据库连接池问题</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/154794" style="color:red;">http://joedanny.javaeye.com/blog/154794</a>&nbsp;
          发表时间: 2008年01月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="quote_title">Xenium 写道</div><div class="quote_div"><div class="quote_title">cozone_柯中 写道</div><div class="quote_div"><br /><br />可以写个过滤器 在 最后统一释放connection 对象,这样就不用改代码了<br /><br />按楼主的那个方法获得ds, 是乎可以在没有用到 hibernate和spring的项目中,使数据库密码加密,保证项目一定的安全性</div><br /><br />呵呵，这个是我的毕业设计不是什么项目，我开始做就打算不用任何外部库，尝试一切从轮子开始：）<br /><br />你刚才说的过滤器指的是用AOP的方法吗，我在处理系统日志时用了这个办法，怕不稳定没敢在数据库层加。</div><br /><br />不是AOP, 直接用tomcat 的过滤器 在过滤器的最后 <br /><pre name="code" class="java">
filterChain.doFilter(req, resp);

		} finally {
			try {
				ConnectionManager.closeConnInTread();
			} catch (RuntimeException e) {
				// TODO Auto-generated catch block
				Log.getLogger().warn("ConnectionManager.closeConnInTread ", e);
			}

		}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/154794#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 10 Jan 2008 16:34:23 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/154794</link>
        <guid>http://joedanny.javaeye.com/blog/154794</guid>
      </item>
          <item>
        <title>vi编辑器的文字说明</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/154790" style="color:red;">http://joedanny.javaeye.com/blog/154790</a>&nbsp;
          发表时间: 2008年01月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          模式：命令模式，编辑模式，末行模式。&nbsp; <br />&nbsp;&nbsp; <br />&nbsp; 切换方式：命令模式→i→编辑模式，编辑模式→Esc→命令模式，命令模式→：→末行模式。&nbsp; <br />&nbsp;&nbsp; <br />&nbsp; 功能：&nbsp; <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <pre name="code" class="java">
          命令模式(Command   Mode)：     控制光标移动，删除字符，段落复制。  
          编辑模式(Insert   Mode)：       新增文字及修改文字。  
          末行模式(Last   Line   Mode)：保存文件，离开vi，以及其他设置。
</pre> <br />&nbsp;&nbsp; <br />&nbsp;&nbsp; <br />&nbsp; 命令模式命令&nbsp; <br />&nbsp;&nbsp; <br />&nbsp; 命令&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 说明&nbsp; <br />&nbsp; <pre name="code" class="java">
   h                       将光标向左移动一格  
    l                       将光标向右移动一格  
    j                       将光标向下移动一格  
    k                       将光标向上移动一格  
    0                       数字0，将光标移动到该行的行首  
    $                       将光标移动到该行的行末  
    H                       将光标移动到该屏幕的顶端  
    M                       将光标移动到该屏幕的中间  
    L                       将光标移动到该屏幕的底端  
    gg                     将光标移动到文章的首行  
    G                       将光标移动到文章的尾行  
  w或W                   将光标移动到下一单词  
    x                       删除光标所在处的字符  
    X                       删除光标前的字符  
    dd                     删除光标所在行  
  *dd                     从光标所在行向下删除*行，*为数字  
    D                       删除光标所在处到行尾  
    r                       取代光标处的一个字符  
    R                       从光标处向后替换，按Esc结束  
    u                       取消上步的操作  
    U                       取消目前的所有操作  
    yy                     复制光标所在行  
    p                       将复制的内容放在光标所在行的下行  
    P(大写)           将复制的内容放在光标所在行的上行  
   </pre><br />&nbsp;&nbsp; <br />&nbsp; 编辑模式命令&nbsp; <br />&nbsp;&nbsp; <br />&nbsp; 命令&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 说明&nbsp; <br />&nbsp; <pre name="code" class="java">
   a                       在光标后插入文本  
    A                       在光标所在行后插入文本  
    i                       在光标前插入文本  
    I                       在光标所在行前插入文本  
    o                       在光标所在行下插入新行(小写字母o)  
    O                       在光标所在行上插入新行(大写字母O)  
   </pre><br />&nbsp;&nbsp; <br />&nbsp; 末行命令&nbsp; <br />&nbsp;&nbsp; <br />&nbsp; 命令&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 说明&nbsp; <br />&nbsp;&nbsp; <pre name="code" class="java"> 
    e                       创建新文件  
    n                       加载新文件  
    w                       保存文件  
    x/X                   保存退出/(redhat9.0不支持了)加密保存退出  
    !                       强行操作  
    w!                     强行保存文件  
    q                       退出  
    q!                     强行退出  
    wq                     保存退出  
    wq!                   强行保存退出  
    set   nu             显示行号  
    set   nonu         不显示行号  
    /*                     /搜索，*任意字符串(n/N向上/下搜索)  
    ?                       同上  
    set   ic             搜索时不区分大小写  
    set   noic  
    :f                     示显编辑的文件的名字  
    :!系统命令</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/154790#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 10 Jan 2008 16:30:38 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/154790</link>
        <guid>http://joedanny.javaeye.com/blog/154790</guid>
      </item>
          <item>
        <title>tomcat6下配置log4j</title>
        <author>JoeDanny</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://joedanny.javaeye.com">JoeDanny</a>&nbsp;
                    链接：<a href="http://joedanny.javaeye.com/blog/154521" style="color:red;">http://joedanny.javaeye.com/blog/154521</a>&nbsp;
          发表时间: 2008年01月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-family: courier new,courier">&nbsp;&nbsp;&nbsp; 昨天部署web应用到Tomcat之后,无法成功启动,并且控制台没有详细的错误信息,</span></p><p><span style="font-family: courier new,courier">&nbsp;&nbsp;&nbsp; 顶多就两行提示信息,例如:</span></p><pre name="code" class="java">严重: Error listenerStart
严重: Context [/lizongbo] startup failed due to previous errors
</pre><br />&nbsp;&nbsp;&nbsp; 或者 :<br /><pre name="code" class="java">严重: Error filterStart
org.apache.catalina.core.StandardContext start
严重: Context startup failed due to previous errors
</pre><p><br />&nbsp;&nbsp;&nbsp; 查找logs目录下的信息,除了这两句话,也没别的辅助内容.给查错带来了困难,在这种情况下,是因为Tomcat自身的默认日志没有将一些错误信息输出到控制台或文件,这个时候则需要配置Tomcat自身的log,启用详细的调试日志.<br /><br />&nbsp;&nbsp;&nbsp; 在Tomcat 5.5和Tomcat 6.0中的配置基本一样,只是相关文件放的目录有所不同.<br /><br />&nbsp;&nbsp;&nbsp; 首先需要准备的文件为:<br /><br />&nbsp;&nbsp;&nbsp; 1.log4j.jar , 下载地址 :</p><p>&nbsp;</p><blockquote><a href="http://www.apache.org/dist/logging/log4j/1.2.15/apache-log4j-1.2.15.zip" target="_blank">http://www.apache.org/dist/logging/log4j/1.2.15/apache-log4j-1.2.15.zip</a><br /></blockquote><p>&nbsp;&nbsp; 2.Tomcat 5.5所需的 commons-logging.jar,下载 </p><blockquote><p> <a href="http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.zip" target="_blank">http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.zip</a></p></blockquote><p><br />&nbsp;&nbsp;&nbsp; 3.log4j配置文件:<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<strong> log4j.properties</strong><br />&nbsp;&nbsp;&nbsp; 配置内容为:</p><pre name="code" class="java">log4j.rootLogger=ERROR,R

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p]%t-%c-%m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/lizongbo.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%p]%t-%c-%m%n

log4j.logger.org.apache.catalina=INFO,R,CONSOLE
</pre><p><br />&nbsp;&nbsp;&nbsp; #日志级别不能太低,如果配置为debug的话,输出的日志信息太多,导致tomcat启动非常的慢.</p><p><br />&nbsp;&nbsp;&nbsp; <strong>在Tomcat6.0中,</strong></p><p><br />&nbsp;&nbsp;&nbsp;&nbsp; Tomcat 6.0所需的juli替换文件:</p><blockquote><a href="http://www.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/extras/tomcat-juli-adapters.jar" target="_blank">http://www.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/extras/tomcat-juli-adapters.jar</a><br /></blockquote><blockquote><a href="http://www.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/extras/tomcat-juli.jar" target="_blank">http://www.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/extras/tomcat-juli.jar</a><br /></blockquote><p>&nbsp;&nbsp; 将tomcat-juli-adapters.jar,log4j-1.2.15.jar,log4j.properties复制到D:\Java\ApacheTomcat6.0.14\lib下面.</p><p><br />&nbsp;&nbsp;&nbsp; 将tomcat-juli.jar复制到D:\Java\apache-tomcat-6.0.14\bin\下面.</p><p><br />&nbsp;&nbsp;&nbsp; 然后启动tomcat,就可以在D:\Java\apache-tomcat-6.0.14\logs下看到lizongbo.log了.<br /><br />&nbsp;&nbsp;&nbsp; <strong>在 Tomcat5.5中,</strong><br /><br />&nbsp;&nbsp;&nbsp; 将commons-logging-1.1.jar,log4j-1.2.15.jar,复制到D:\Java\apache-tomcat-5.5.25\common\lib下面.</p><p><br />&nbsp;&nbsp;&nbsp; 将log4j.properties复制到D:\Java\apache-tomcat-5.5.25\common\classes下面.<br /><br />&nbsp;&nbsp;&nbsp; 然后启动tomcat,就可以在D:\Java\apache-tomcat-5.5.25\logs下看到lizongbo.log了.<br /><br />&nbsp;&nbsp;&nbsp; 在这个时候,再通过日志文件来分析,则会发现出现这种错误的情况可能有:</p><p><br />(以下是我遇到的出错情况,大多是些低级错误)<br />1.webapps要用到的classe文件根本没有复制到WEB-INF/classes目录下面<br />(java.lang.NoClassDefFoundError,而这个信息可能默认没输出到控制台,尤其是用了spring的,昨天就是这个粗心的低级错误)<br />2.要用到lib文件没有复制完,缺少lib<br />3.lib下的同一个库的jar文件存在多个不同版本,引起版本冲突.<br />4.lib下的jar与tomcat版本不相对应(我遇到的问题是web应用在Tomcat5.5上运行正常,换到Tomcat6.0上就出错,<br />例如一个用了struts的webapp在Tomcat 6上报下面的错误</p><pre name="code" class="java">&ldquo;Parse Fatal Error at line 17 column 6: The processing instruction
target matching &ldquo;[xX][mM][lL]&rdquo; is not allowed&rdquo; )</pre><br /><br />愿意看英文的可以参考官方网站说明:<br /><a href="http://tomcat.apache.org/tomcat-6.0-doc/logging.html" target="_blank">http://tomcat.apache.org/tomcat-6.0-doc/logging.html</a><br /><a href="http://tomcat.apache.org/tomcat-5.5-doc/logging.html" target="_blank">http://tomcat.apache.org/tomcat-5.5-doc/logging.html</a><br /><br /><strong>转自:</strong> <a href="http://618119.com/archives/2007/12/04/37.html" target="_blank">http://618119.com/archives/2007/12/04/37.html</a><p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://joedanny.javaeye.com/blog/154521#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 09 Jan 2008 18:02:52 +0800</pubDate>
        <link>http://joedanny.javaeye.com/blog/154521</link>
        <guid>http://joedanny.javaeye.com/blog/154521</guid>
      </item>
      </channel>
</rss>