隨筆-62  評論-29  文章-0  trackbacks-0

          struts2+tomcat5.0+jdk1.5與TransformerFactoryImpl

          struts2+tomcat5.0+jdk1.5啟動容器時候出現Exception
          Exception starting filter struts2
          javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
          at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
          at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<clinit>(DomHelper.java:167)
          at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:786)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:132)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100)
          at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130)
          at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
          at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:398)
          at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:455)
          at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
          at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:225)
          at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:308)
          at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:79)
          at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3698)
          at org.apache.catalina.core.StandardContext.start(StandardContext.java:4349)
          at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
          at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
          at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
          at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
          at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
          at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
          at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
          at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
          at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
          at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
          at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
          at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
          at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
          at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
          at org.apache.catalina.core.StandardService.start(StandardService.java:480)
          at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
          at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
          at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
          google后得知錯誤原因
          認為是由于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".

          解決辦法: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.


          posted on 2008-09-11 16:19 閱讀(563) 評論(1)  編輯  收藏

          評論:
          # re: TransformerFactoryImpl 2008-09-11 16:21 |
          好象,在tomcat5.5的版本中就不會出現這樣的問題了.  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 衡水市| 墨玉县| 文昌市| 图们市| 武平县| 久治县| 秭归县| 台南县| 鄱阳县| 钟山县| 临泽县| 突泉县| 青田县| 贵溪市| 宁德市| 衢州市| 和顺县| 伊通| 墨竹工卡县| 吕梁市| 金秀| 岳阳市| 开鲁县| 彰化市| 许昌县| 根河市| 永福县| 博客| 绩溪县| 宁蒗| 南宁市| 木里| 通化市| 潼南县| 肃南| 迁西县| 漳平市| 奉新县| 卢氏县| 章丘市| 义马市|