﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-i am allen-随笔分类-JavaEE Servers</title><link>http://www.blogjava.net/allen-zhe/category/19071.html</link><description>&lt;embed src="http://www.clocklink.com/clocks/5012-black.swf?TimeZone=CCT&amp;"  width="151" height="50" wmode="transparent" type="application/x-shockwave-flash"&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 16 Jan 2008 06:29:50 GMT</lastBuildDate><pubDate>Wed, 16 Jan 2008 06:29:50 GMT</pubDate><ttl>60</ttl><item><title>Tomcat给我的java.lang.OutOfMemoryError: PermGen</title><link>http://www.blogjava.net/allen-zhe/archive/2007/12/18/168556.html</link><dc:creator>小立飞刀</dc:creator><author>小立飞刀</author><pubDate>Tue, 18 Dec 2007 10:29:00 GMT</pubDate><guid>http://www.blogjava.net/allen-zhe/archive/2007/12/18/168556.html</guid><wfw:comment>http://www.blogjava.net/allen-zhe/comments/168556.html</wfw:comment><comments>http://www.blogjava.net/allen-zhe/archive/2007/12/18/168556.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/allen-zhe/comments/commentRss/168556.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allen-zhe/services/trackbacks/168556.html</trackback:ping><description><![CDATA[
		<p>今天，Tomcat给了我这么一个异常：java.lang.OutOfMemoryError: PermGen space。自己是第一次遇到，抱着好奇的心情google了一下，居然是个很常见的异常！故记录一下。：）</p>
		<p>
				<br />
				<strong>原因：</strong>
				<br />      PermGen space的全称是Permanent Generation space,是指内存的永久保存区域，这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中，它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理，所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误，这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。</p>
		<p>
				<strong>解决方法：</strong>
		</p>
		<p>1. 手动设置MaxPermSize大小<br />      修改TOMCAT_HOME/bin/catalina.bat（Linux下为catalina.sh），在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行：<br />set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m</p>
		<p>catalina.sh下为：<br />JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"</p>
		<p>
				<br />2. 将相同的第三方jar文件移置到tomcat/shared/lib目录下，这样可以达到减少jar 文档重复占用内存的目的。</p>
		<p>
				<br />如果遇到这个异常：<strong>java.lang.OutOfMemoryError: Java heap space</strong> 是什么原因呢？</p>
		<p>
				<strong>解释：</strong>
				<br />Heap size 设置<br />JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值，其初始空间(即-Xms)是物理内存的1/64，最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。<br />提示：在JVM中如果98％的时间是用于GC且可用的Heap size 不足2％的时候将抛出此异常信息。<br />提示：Heap Size 最大不要超过可用物理内存的80％，一般的要将-Xms和-Xmx选项设置为相同，而-Xmn为1/4的-Xmx值。 </p>
		<p>
				<strong>解决方法：</strong>
				<br />      手动设置Heap size<br />      修改TOMCAT_HOME/bin/catalina.bat，在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行：<br />set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m   -XX:MaxNewSize=256m</p>
		<p>或修改catalina.sh<br />在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行：<br />JAVA_OPTS="$JAVA_OPTS  -server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"</p>
		<p> </p>
		<p>
				<br />另外看到了另外一个帖子，觉得挺好，摘抄如下：</p>
		<p> <a title="分析java.lang.OutOfMemoryError: PermGen space" href="http://www.javaeye.com/topic/80620">主题: 分析java.lang.OutOfMemoryError: PermGen space</a></p>
		<p>SUN JDK+Tomcat 5.5.20运行服务的时候遇到问题，服务器跑几天后就会挂掉，并报java.lang.OutOfMemoryError: PermGen space异常。</p>
		<p>
				<br />发现很多人把问题归因于： spring,hibernate,tomcat，因为他们动态产生类,导致JVM中的permanent heap溢出 。然后解决方法众说纷纭，有人说升级 tomcat版本到最新甚至干脆不用tomcat。还有人怀疑spring的问题，在spring论坛上讨论很激烈，因为spring在AOP时使用CBLIB会动态产生很多类。</p>
		<p>但问题是为什么这些王牌的开源会出现同一个问题呢，那么是不是更基础的原因呢？tomcat在Q&amp;A很隐晦的回答了这一点，我们知道这个问题，但这个问题是由一个更基础的问题产生。 </p>
		<p>于是有人对更基础的JVM做了检查，发现了问题的关键。原来SUN 的JVM把内存分了不同的区，其中一个就是permenter区用来存放用得非常多的类和类描述。本来SUN设计的时候认为这个区域在JVM启动的时候就固定了，但他没有想到现在动态会用得这么广泛。而且这个区域有特殊的垃圾收回机制，现在的问题是动态加载类到这个区域后，gc根本没办法回收！ </p>
		<p>2003年的时候就有一个bug报告给sun，但是到现在，这个bug还没有close！有人在这个bug加了句评语：“A bug this critical is open since 2003? Absolutely shameful.” 我觉得SUN在这个BUG上确实有些丢脸。</p>
		<p>对这个bug最彻底的解决办法就是不要用SUN的JDK，而改用BEA的 JRokit.</p>
		<p>打不过，还逃不过吗？ 有众多的选择，这就是开源的好。 ：）</p>
		<p>
				<br />最后，给出几篇文章供大家学习参考：<br /><strong>Java虚拟机的选项</strong>：<a href="http://www.tot.name/show/3/7/20061112220131.htm">http://www.tot.name/show/3/7/20061112220131.htm</a><br /><strong>Hot Spot JVM5中的GC调优</strong>：<a href="http://www.tot.name/show/3/7/20061112220201.htm">http://www.tot.name/show/3/7/20061112220201.htm</a></p>
		<p>                                                                           <br />                                                                              <strong><font color="#a52a2a">THE END</font></strong><br /> </p>
<img src ="http://www.blogjava.net/allen-zhe/aggbug/168556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allen-zhe/" target="_blank">小立飞刀</a> 2007-12-18 18:29 <a href="http://www.blogjava.net/allen-zhe/archive/2007/12/18/168556.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java EE十大性能问题</title><link>http://www.blogjava.net/allen-zhe/archive/2007/06/14/124359.html</link><dc:creator>小立飞刀</dc:creator><author>小立飞刀</author><pubDate>Thu, 14 Jun 2007 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/allen-zhe/archive/2007/06/14/124359.html</guid><wfw:comment>http://www.blogjava.net/allen-zhe/comments/124359.html</wfw:comment><comments>http://www.blogjava.net/allen-zhe/archive/2007/06/14/124359.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/allen-zhe/comments/commentRss/124359.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allen-zhe/services/trackbacks/124359.html</trackback:ping><description><![CDATA[
		<p>在过去的两个半月里，Vincent Partington总结出了Java企业级应用的性能问题TOP 10：</p>
		<ul>
				<li>#10 - <a href="http://blog.xebia.com/2007/02/18/ejapp-top-10-countdown-10-excessive-logging/"><strong><font color="#4169aa">Excessive logging</font></strong></a></li>
				<li>#9 - <a href="http://blog.xebia.com/2007/02/25/ejapp-top-10-countdown-9-incorrect-application-server-configuration/"><strong><font color="#4169aa">Incorrect application server configuration</font></strong></a></li>
				<li>#8 - <a href="http://blog.xebia.com/2007/03/09/ejapp-top-10-countdown-8-incorrect-usage-of-java-ee/"><strong><font color="#4169aa">Incorrect usage of Java EE</font></strong></a></li>
				<li>#7 - <a href="http://blog.xebia.com/2007/03/19/ejapp-top-10-countdown-7-unnecessary-use-of-xml/"><strong><font color="#4169aa">Unnecessary use of XML</font></strong></a></li>
				<li>#6 - <a href="http://blog.xebia.com/2007/03/26/ejapp-top-10-countdown-6-improper-caching/"><strong><font color="#4169aa">Improper caching</font></strong></a></li>
				<li>#5 - <a href="http://blog.xebia.com/2007/04/02/ejapp-top-10-countdown-5-excessive-memory-usage/"><strong><font color="#4169aa">Excessive memory usage</font></strong></a></li>
				<li>#4 - <a href="http://blog.xebia.com/2007/04/16/ejapp-top-10-countdown-4-badly-performing-libraries/"><strong><font color="#4169aa">Badly performing libraries</font></strong></a></li>
				<li>#3 - <a href="http://blog.xebia.com/2007/04/22/ejapp-top-10-countdown-3-incorrectly-implemented-concurrency/"><strong><font color="#4169aa">Incorrectly implemented concurrency</font></strong></a></li>
				<li>#2 - <a href="http://blog.xebia.com/2007/04/25/ejapp-top-10-countdown-2-unnecessary-remoting/"><strong><font color="#4169aa">Unnecessary remoting</font></strong></a></li>
				<li>#1 - <a href="http://blog.xebia.com/2007/04/29/ejapp-top-10-countdown-1-incorrect-database-usage/"><strong><font color="#4169aa">Incorrect database usage</font></strong></a></li>
		</ul>
		<p>以下两点需要注意：</p>
		<ul>
				<li>首先，java开发者在开发一个项目时，必须从头至尾都要重视性能问题； 
</li>
				<li>其次，Java开发者需要与诸如应用服务器和数据库的管理员一起完成项目开发，因为他们可以帮助开发者提高系统性能。 </li>
		</ul>
		<p>
				<br />
				<font size="2">文章转自：</font>
				<a href="http://www.theserverside.com/news/thread.tss?thread_id=45187">http://www.theserverside.com/news/thread.tss?thread_id=45187</a>
		</p>
<img src ="http://www.blogjava.net/allen-zhe/aggbug/124359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allen-zhe/" target="_blank">小立飞刀</a> 2007-06-14 17:21 <a href="http://www.blogjava.net/allen-zhe/archive/2007/06/14/124359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在tomcat5下配置连接池</title><link>http://www.blogjava.net/allen-zhe/archive/2007/03/02/101524.html</link><dc:creator>小立飞刀</dc:creator><author>小立飞刀</author><pubDate>Fri, 02 Mar 2007 10:12:00 GMT</pubDate><guid>http://www.blogjava.net/allen-zhe/archive/2007/03/02/101524.html</guid><wfw:comment>http://www.blogjava.net/allen-zhe/comments/101524.html</wfw:comment><comments>http://www.blogjava.net/allen-zhe/archive/2007/03/02/101524.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/allen-zhe/comments/commentRss/101524.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allen-zhe/services/trackbacks/101524.html</trackback:ping><description><![CDATA[
		<div align="left">
				<strong>问题：</strong>在tomcat5.0.28 和 tomcat5.5下配置Oracle9i连接池 </div>
		<div align="left">
				<font size="4">
				</font> </div>
		<div align="left">
				<font size="4">
						<strong>
								<font size="3">解决方法：</font>
						</strong>
						<br />
				</font>
		</div>
		<div align="left">
				<font size="3">
						<strong>
								<br />
								<font size="2">1. 在tomcat5.0.28下配置Oracle9i连接池<br /></font>
						</strong>
				</font>
		</div>
		<div align="left">
				<br />A. 将jdbc driver放到 tomcat-5.0.28\common\lib 下 （Oracle9i的driver为classes12.jar）</div>
		<div align="left">B. 修改tomcat-5.0.28\conf\server.xml 配置文件<br /></div>
		<div align="left">   找到配置文件中的&lt;HOST&gt;部分<br /></div>
		<div align="left">    
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Host </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="localhost"</span><span style="COLOR: #ff0000"> debug</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #ff0000"> appBase</span><span style="COLOR: #0000ff">="webapps"</span><span style="COLOR: #ff0000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       unpackWARs</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000"> autoDeploy</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       xmlValidation</span><span style="COLOR: #0000ff">="false"</span><span style="COLOR: #ff0000"> xmlNamespaceAware</span><span style="COLOR: #0000ff">="false"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   <img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">HOST</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />   将下面的Context信息加到&lt;HOST&gt;中<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Context </span><span style="COLOR: #ff0000">path</span><span style="COLOR: #0000ff">="/app"</span><span style="COLOR: #ff0000"> docBase</span><span style="COLOR: #0000ff">="app"</span><span style="COLOR: #ff0000">  debug</span><span style="COLOR: #0000ff">="9"</span><span style="COLOR: #ff0000"> privileged</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000"> verbosity</span><span style="COLOR: #0000ff">="4"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_sync4j_log." suffix=".txt" timestamp="true" / </span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Resource </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="jdbc/appDS"</span><span style="COLOR: #ff0000"> auth</span><span style="COLOR: #0000ff">="Container"</span><span style="COLOR: #ff0000"> type</span><span style="COLOR: #0000ff">="javax.sql.DataSource"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ResourceParams </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="jdbc/appDS"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">factory</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">org.apache.commons.dbcp.BasicDataSourceFactory</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">driverClassName</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">oracle.jdbc.driver.OracleDriver</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">url</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">jdbc:oracle:thin:@youripaddress:DBName</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">username</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">username</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">password</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">pwd</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">maxActive</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">20</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">maxIdle</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">10</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">maxWait</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">10000</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameter</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">ResourceParams</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Context</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div></div>
		<div align="left">  </div>
		<div align="left">C. 在您的应用的web.xml中添加下面的 resource-ref</div>
		<div align="left">   
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">resource-ref</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">description</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">DB Connection</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">description</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">res-ref-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">jdbc/appDS</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">res-ref-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">res-type</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">javax.sql.DataSource</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">res-type</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">res-auth</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Container</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">res-auth</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">resource-ref</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br /></div>
		<div align="left">D. 如果您的项目中使用了Spring，则需要在Spring的context配置文件中指定data source为Tomcat JNDI<br /><br /></div>
		<div align="left">
				<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #008000">&lt;!--</span>
						<span style="COLOR: #008000"> tomcat Database Connection Pool </span>
						<span style="COLOR: #008000">--&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">&lt;</span>
						<span style="COLOR: #800000">bean </span>
						<span style="COLOR: #ff0000">id</span>
						<span style="COLOR: #0000ff">="dataSource"</span>
						<span style="COLOR: #ff0000"> class</span>
						<span style="COLOR: #0000ff">="org.springframework.jndi.JndiObjectFactoryBean"</span>
						<span style="COLOR: #0000ff">&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />          </span>
						<span style="COLOR: #0000ff">&lt;</span>
						<span style="COLOR: #800000">property </span>
						<span style="COLOR: #ff0000">name</span>
						<span style="COLOR: #0000ff">="jndiName"</span>
						<span style="COLOR: #ff0000"> value</span>
						<span style="COLOR: #0000ff">="java:comp/env/jdbc/appDS"</span>
						<span style="COLOR: #0000ff">/&gt;</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">&lt;/</span>
						<span style="COLOR: #800000">bean</span>
						<span style="COLOR: #0000ff">&gt;</span>
				</div>
		</div>
		<div align="left"> </div>
		<div align="left">E. 启动服务，享用吧。：）<br /></div>
		<div align="left">
				<br /> </div>
		<div align="left">
				<div align="left">
						<strong>
								<font size="2">2. 在tomcat5.5下配置Oracle9i连接池 <br /></font>
						</strong>
				</div>
		</div>
		<div align="left">
				<div align="left">
						<br />A. 将jdbc driver放到 tomcat-5.0.28\common\lib 下 （Oracle9i的driver为classes12.jar）<br /></div>
				<div align="left">
						<br />B. 修改tomcat-5.0.28\conf\server.xml 配置文件<br /></div>
				<div align="left">
						<br />   找到配置文件中的&lt;HOST&gt;部分<br /></div>
				<div align="left">    
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Host </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="localhost"</span><span style="COLOR: #ff0000"> debug</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #ff0000"> appBase</span><span style="COLOR: #0000ff">="webapps"</span><span style="COLOR: #ff0000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       unpackWARs</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000"> autoDeploy</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       xmlValidation</span><span style="COLOR: #0000ff">="false"</span><span style="COLOR: #ff0000"> xmlNamespaceAware</span><span style="COLOR: #0000ff">="false"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   <img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">HOST</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />      将下面的Context信息加到&lt;HOST&gt;中<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Context </span><span style="COLOR: #ff0000">path</span><span style="COLOR: #0000ff">="/app"</span><span style="COLOR: #ff0000"> docBase</span><span style="COLOR: #0000ff">="app"</span><span style="COLOR: #ff0000"> debug</span><span style="COLOR: #0000ff">="5"</span><span style="COLOR: #ff0000"> reloadable</span><span style="COLOR: #0000ff">="false"</span><span style="COLOR: #ff0000"> crossContext</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">Resource </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="jdbc/appDS"</span><span style="COLOR: #ff0000"> scope</span><span style="COLOR: #0000ff">="Shareable"</span><span style="COLOR: #ff0000"> type</span><span style="COLOR: #0000ff">="javax.sql.DataSource"</span><span style="COLOR: #ff0000"> username</span><span style="COLOR: #0000ff">="username"</span><span style="COLOR: #ff0000"> password</span><span style="COLOR: #0000ff">="pwd"</span><span style="COLOR: #ff0000"> driverClassName</span><span style="COLOR: #0000ff">="oracle.jdbc.driver.OracleDriver"</span><span style="COLOR: #ff0000"> url</span><span style="COLOR: #0000ff">="jdbc:oracle:thin:@youripaddress:DBName"</span><span style="COLOR: #ff0000"> maxWait</span><span style="COLOR: #0000ff">="-1"</span><span style="COLOR: #ff0000"> maxIdle</span><span style="COLOR: #0000ff">="100"</span><span style="COLOR: #ff0000"> maxActive</span><span style="COLOR: #0000ff">="15"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">Context</span><span style="COLOR: #0000ff">&gt;</span></div></div>
				<div align="left"> </div>
				<div align="left">
						<div align="left">C. 如果您的项目中使用了Spring，则需要在Spring的context配置文件中指定data source为Tomcat JNDI<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000"> tomcat Database Connection Pool </span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean </span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="dataSource"</span><span style="COLOR: #ff0000"> class</span><span style="COLOR: #0000ff">="org.springframework.jndi.JndiObjectFactoryBean"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="jndiName"</span><span style="COLOR: #ff0000"> value</span><span style="COLOR: #0000ff">="java:comp/env/jdbc/appDS"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div></div>
				</div>
				<div align="left"> </div>
				<div align="left">D. OK了，无需修改web.xml文件，启动服务吧！<br /><br /><br /><strong><font color="#a52a2a">                                                                                THE END</font></strong></div>
		</div>
<img src ="http://www.blogjava.net/allen-zhe/aggbug/101524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allen-zhe/" target="_blank">小立飞刀</a> 2007-03-02 18:12 <a href="http://www.blogjava.net/allen-zhe/archive/2007/03/02/101524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TransformerFactoryImpl not found exception</title><link>http://www.blogjava.net/allen-zhe/archive/2007/03/02/101373.html</link><dc:creator>小立飞刀</dc:creator><author>小立飞刀</author><pubDate>Fri, 02 Mar 2007 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/allen-zhe/archive/2007/03/02/101373.html</guid><wfw:comment>http://www.blogjava.net/allen-zhe/comments/101373.html</wfw:comment><comments>http://www.blogjava.net/allen-zhe/archive/2007/03/02/101373.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/allen-zhe/comments/commentRss/101373.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allen-zhe/services/trackbacks/101373.html</trackback:ping><description><![CDATA[
		<div align="left">
				<strong>场景：</strong>构建Struts2.0时发生的错误。<br /><br /><strong>环境：</strong>sun jdk1.5.0_01 + tomcat 5.0.28<br /><br /><strong>完整的Exception：</strong><br />Exception starting filter struts2<br />javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found<br /> at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)<br /> at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.&lt;clinit&gt;(DomHelper.java:167)<br /> at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)<br /> at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:786)<br /> at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:132)<br /> at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100)<br /> at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130)<br /> at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)<br /> at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:398)<br /> at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:455)<br /> at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)<br /> at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:225)<br /> at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:308)<br /> at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:79)<br /> at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3698)<br /> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4349)<br /> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)<br /> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)<br /> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)<br /> at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)<br /> at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)<br /> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)<br /> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)<br /> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)<br /> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)<br /> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)<br /> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)<br /> at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)<br /> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)<br /> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)<br /> at org.apache.catalina.core.StandardService.start(StandardService.java:480)<br /> at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)<br /> at org.apache.catalina.startup.Catalina.start(Catalina.java:556)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:585)<br /> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)<br /> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)</div>
		<div align="left"> </div>
		<div align="left">
				<strong>错误原因：</strong>
				<br />认为是由于jdk1.5 与 tomcat5.0之间的关于 TransformerFactoryImpl 类的冲突造成的。<br />tomcat-5.0.28\common\endorsed下有两个jar包：xercesImpl.jar和xml-apis.jar，其中的类 javax.xml.transform.TransformerFactory 与jdk1.5中的类org.apache.xalan.processor.TransformerFactoryImpl其实是同一个类。</div>
		<div align="left">in tomcat java is called with the following argument:<br />-Djava.endorsed.dirs="X:\my_app\Portal\tomcat\common\endorsed"</div>
		<div align="left">In this directory you find two jar files: xercesImpl.jar and xml-apis.jar needed by tomcat and that must be loaded before all xmsl stuff present in the jdk (1.4 naming problem). And in the file xml-apis.jar the TransformerFactoryImpl is set to "org.apache.xalan.processor.TransformerFactoryImpl".</div>
		<div align="left">
				<br />
				<strong>解决办法：<br /></strong>1. 将xml-apis.jar移出endorsed文件夹。<br />2. 用xalan系列jar包替换原来的xercesImpl.jar和xml-apis.jar。<br />   xalan系列jar包：serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar。<br />3. For other application, just check this file or dom3-xml-apis.jar in your class path.<br /><br /><br />                                                                              <font color="#a52a2a"><strong>THE END</strong></font></div>
<img src ="http://www.blogjava.net/allen-zhe/aggbug/101373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allen-zhe/" target="_blank">小立飞刀</a> 2007-03-02 09:49 <a href="http://www.blogjava.net/allen-zhe/archive/2007/03/02/101373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何同时启动多个Tomcat服务器</title><link>http://www.blogjava.net/allen-zhe/archive/2007/01/15/93981.html</link><dc:creator>小立飞刀</dc:creator><author>小立飞刀</author><pubDate>Mon, 15 Jan 2007 08:56:00 GMT</pubDate><guid>http://www.blogjava.net/allen-zhe/archive/2007/01/15/93981.html</guid><wfw:comment>http://www.blogjava.net/allen-zhe/comments/93981.html</wfw:comment><comments>http://www.blogjava.net/allen-zhe/archive/2007/01/15/93981.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.blogjava.net/allen-zhe/comments/commentRss/93981.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/allen-zhe/services/trackbacks/93981.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如何同时启动多个Tomcat服务器&nbsp;&nbsp;<a href='http://www.blogjava.net/allen-zhe/archive/2007/01/15/93981.html'>阅读全文</a><img src ="http://www.blogjava.net/allen-zhe/aggbug/93981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/allen-zhe/" target="_blank">小立飞刀</a> 2007-01-15 16:56 <a href="http://www.blogjava.net/allen-zhe/archive/2007/01/15/93981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>