最近用struts2做了一个小项目。
在本地测试,相当顺利,但是放到服务器上测试时,tomcat总是报404错误,弄得我相当郁闷。于是将服务器的tomcat日志文件下载下来一看居然是Provider org.apache.xalan.processor.TransformerFactoryImpl not found这个错误,于是便在google,百度上面搜了一搜,发现引发此错误的原因竟然是jdk1.5 与 tomcat5.0之间的关于 TransformerFactoryImpl 类的冲突造成的。
为什么我在本地测试的时候是非常正常的呢?是因为我在本地环境的搭配是jdk1.5+tomcat5.5而服务器上的环境是jdk1.6+tomcat5.0,所以引发此错误。此错误是怎么发生的呢?有兴趣研究一下的朋友或许可以在这篇文章中得到一些启发(
http://www.java125.cn/article.asp?id=2547)。
下面说说我的解决办法吧(其实也是百度,google的解决办法):
首先下载“xalan系列jar包”,下载地址:http://www.apache.org/dyn/closer.cgi/xml/xalan-j,
然后将tomcat中目录下:/tomcat/common/endorsed/(xercesImpl.jar和xml-apis.jar)删掉,然后将下载的xalan系列jar包(包括serializer.jar、xalan.jar、xercesImpl.jar、xml-apis.jar、xsltc.jar)拷贝到/tomcat/common/endorsed目录,重启tomcat,搞定!
如果还不清楚,请参考
百度知道。
“这个故事告诉我”(经过这次事件)jdk1.5+tomcat5.5是最佳组合。
希望这篇文章对你有用。