日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】javax.xml.transform.TransformerFactoryConfigurationError

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】javax.xml.transform.TransformerFactoryConfigurationError 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一步:

去看tomcat的webapps,里邊也部署上了。接著用昨天剛學的一招必殺,呵呵!去看C:\Program Files\Apache Software Foundation\Tomcat 5.0\logs下的日志,顯示javax.xml.transform.TransformerFactoryConfigurationError Provider org.apache.xalan.processor.TransformerFactoryImpl not found

后來上網搜了一下:找到了一篇文章,說該問題是由于tomcat 里C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\endorsed下的兩個有關xml的jar文件和JDK里的xml解析器沖突造成的:原文如下:

http://localhost:8080/testdwr/dwr?訪問

頁面出現錯誤

javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
uk.ltd.getahead.dwr.convert.DOMConverter.<init>(DOMConverter.java:157)

這是一個 XML 解析器的問題,我們能直接能理解的就是 TransformerFactoryImpl 找不到,那么這個類在哪個包里呢? xalan,就去 apache 網上下載到 xalan.jar 包扔到應用的 WEB-INF/lib 目錄中,重啟 Tomcat 就能OK 了。

上面是第一種解決辦法。問題是解決了,但是根由何在?難道就不能用別的 XML 解析器呢,難道 JDK 和 Tomcat 就沒有為我們預備好對于 dwr 可用的 XML 解析器嗎?先說個背景

·JDK1.3 沒有 XML 解析器,所有要自己配上 xercesImpl.jar 和 xml-apis.jar
·JDK 1.4.0 和 JDK 1.4.1 雖然具有了 XML 解析器,但是有些 Bug,所有還是得把 xercesImpl.jar 放到 Tomcat/common/endorsed 目錄中覆蓋掉默認的解析器
·JDK 1.4.2 及后來版本的 XML 解析器可以工作的很好
·最后,那個出現錯誤本質原因還得由下面慢慢道來……

這樣就是說 JDK 1.4.2 及更新版本根本用不著 xercesImpl.jar 和 xml-apis.jar 幫忙了。只要我們細心些就能發現在 Tomcat5.0.x/common/endorsed 目錄中有兩個包 xercesImpl.jar 和 xml-apis.jar。因為 Tomcat 加載 endorsed 中的包是通過參數 -Djava.endorsed.dirs="X:\Tomcat5.0.x\common\endorsed" 加載的,所以放在 endorsed 目錄中的包要優于 JDK 的 rt.jar,所以要用 JDK 的 XML 解析器必須把 xercesImpl.jar 和 xml-apis.jar 從 endorsed 目錄中移去,這是第二種解決辦法。

再靜心想一想,問題在 XML 解析器,為何偏偏是 org.apache.xalan.processor.TransformerFactoryImpl 這樣的類名呢?這讓我不免思考起 JDK 1.4 及 JDK 1.5 以上版本的差異來,再次回想起為何 Tomcat 5.5.x 版本需要 JDK 1.5 以上的版本來。

不妨做個實驗,dwr 1.1.4 + JDK 1.4.2 + Tomcat 5.0.x,xercesImpl.jar 和 xml-apis.jar 仍舊讓它們在 endorsed 目錄中,運行最基本的 dwr 程序沒一點問題。那為什么換個JDK就又行了呢?原因就在 xml-apis.jar 中指定了 TransformerFactory 的實現類全名為 org.apache.xalan.processor.TransformerFactoryImpl,它存在于 JDK 1.4.2 的 rt.jar 包中,而在 JDK 1.5 的 rt.jar 包中根本就沒有 apache 的包了,所以它不行,再進一步,其實第二種解決辦法如果用的是 JDK 1.5 以上版本僅僅需要把 xml-apis.jar 包從 endorsed 目錄挪出就行了。

?

--------------------------------------華麗的分割線----------------------------------------

?

在Tomcat上部署Ehcache Server時出現一個小問題
Java代碼
  • ?嚴?重:?WSSERVLET11:?failed?to?parse?runtime?descriptor:? ??
  • ??
  • javax.xml.transform.TransformerFactoryConfigurationError:? ??
  • Provider?org.apache.xalan.processor.TransformerFactoryImpl? ??
  • not?found ??
  • javax.xml.transform.TransformerFactoryConfigurationError: ??
  • Provider?org.apache.xalan.processor.TransformerFactoryImpl? ??
  • not?found??
  • 嚴 重: WSSERVLET11: failed to parse runtime descriptor: javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not foundjavax.xml.transform.TransformerFactoryConfigurationError:Provider org.apache.xalan.processor.TransformerFactoryImpl not found
    問題的提示說少xalan包,上網看了一下發現時jdk1.5 與 tomcat5.0之間的關于 TransformerFactoryImpl類的沖突造成的。
    解決方法,首先下載“xalan系列jar包”,然后將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即可。
    以后還是使用Tomcat5.5好些。

    ?

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/niuxiaohao/archive/2010/10/27/1862726.html

    總結

    以上是生活随笔為你收集整理的【转】javax.xml.transform.TransformerFactoryConfigurationError的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。