JDK的版本不一樣,對xml的解析器也不一樣.

mengzhaoliang發表於2008-03-26

     公司產品中有工作流轉公文收發的流程,其中需要對xml進行解析.原來一直在jdk1.4上使用,沒發生什麼問題.但是在jdk1.5上使用,需要更換apache中的解析器xalan.jar

 

   在jdk1.5+tomcat5.0.28上,需要把WEB-INF/lib/xalan.jar包替換成高版本的包xalan-2.7.0.jar即可.

 

下面摘自網路的文章:

  頁面出現錯誤

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.(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 解析器可以工作的很好

 

來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-217973/,如需轉載,請註明出處,否則將追究法律責任。

相關文章