异常 TransformerFactoryImpl not found 解决方法

在学习Myeclipse、webservice、xfire时遇到的问题:异常 Provider org.apache.xalan.processor.TransformerFactoryImpl not found
google一下,发现很多人遇到同样的问题,留下来作为学习备份

参考:
http://hi.baidu.com/raybb/blog/item/3007aacc4558ae1300e9283a.html
http://www.blogjava.net/menglikun/archive/2008/10/09/233291.html
http://zhidao.baidu.com/question/37829777.html

================================================================================
javax.servlet.ServletException: Error occured during request processing: Provider org.apache.xalan.processor.TransformerFactoryImpl not found org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:757) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) com.cotel.util.filter.EncodingFilter.doFilter(EncodingFilter.java:41)

错误原因:
认为是由于jdk1.5 与 tomcat5.0之间的关于 TransformerFactoryImpl 类的冲突造成的。
tomcat-5.0.28\common\endorsed下有两个jar包:xercesImpl.jar和xml-apis.jar,其中的类 javax.xml.transform.TransformerFactory 与jdk1.5中的类org.apache.xalan.processor.TransformerFactoryImpl其实是同一个类。
in tomcat java is called with the following argument:
-Djava.endorsed.dirs="X:\my_app\Portal\tomcat\common\endorsed"
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".

解决办法为下面3步骤:
1. 将xml-apis.jar移出endorsed文件夹。(可以先备份)
2. 用xalan系列jar包替换原来的xercesImpl.jar和xml-apis.jar。
xalan系列jar包:serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar。
3. For other application, just check this file or dom3-xml-apis.jar in your class path.
下载地址:
http://mirrors.24-7-solutions.net/pub/apache/xml/xalan-j/xalan-j_2_7_0-bin.zip
提示:如果没有连接表示官方已经更新了,但主连接不会更新,下面的可以下载
http://mirrors.24-7-solutions.net/pub/apache/xml/xalan-j
或者:http://mirrors.24-7-solutions.net/pub/apache/xml/

================================================================================
如果你不会这样做,就使用1.4的JDK和tomcat5.0
或者JDK1.5 tomcat5.5 这2种类型才是匹配的

================================================================================
上面的是我copy的,同时做了些修改,呵呵`
以前没有注意到这个问题,jar包重复。
《core java》中有包搜索的先后问题、重复冲突问题的很好解释,原来没有注意到过,现在开发用到的jar包多了之后,这个问题当小心了,呵呵,编译可能不会报错!

现在想到的解决方法为:
1. 保留自己的jar包库,这样在引用别的插件的时候,其jar包可以不导入(用自己的),这样就不会发生多个jar包重复问题了
2. java文件最好别用*号: import xxx.yyy.zzz.*;这样更容易引起问题
3. 第三方软件最好配套,jdk5对应Tomcat5.5吗,真麻烦~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值