cxf 在java6下 無法工作的原因

根據錯誤提示信息,去查看了些文檔,發現原來java6中rt.jar包中已經發行了jaxb-api-2.0版本。而且在程序啓動時,jre先load這個包,導致cxf依賴的jaxb-api-2.1包中的某些class,就無法工作。sun提供瞭解決方案是endorsed文件下放這些準備覆蓋系統自帶的包!也就是jaxb-api-2.1.jar , 別忘了也把jaxb-impl-2.1.x 也放進去!

Java6

$JAVA_HOME/lib/endorsed (or$JDK_HOME/jre/lib/endorsed)

 

tomcat

Tomcat 5.5,則新建文件路徑爲“Tomcat 5.5/common/endorsed”,

Tomcat 6.0,則新建路徑爲“Tomcat 6.0/endorsed”。

 

Jboss請參考

http://nwangwei.spaces.live.com/Blog/cns!3A3D02B743E87051!240.entry

 

 

由此可以看出,其他程序只要依賴jaxb-api-2.1以上的程序都會有類似的問題!例如 很多webservice框架就直接依賴這個包。

 

這個問題給工程的部署帶來了麻煩,怎麼解決這個問題就要看sun發佈新的jdk是否升級jaxb-api了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章