1. 程式人生 > >開發使用tomcat生產使用weblogic造成jar包沖突如何解決?

開發使用tomcat生產使用weblogic造成jar包沖突如何解決?

class mage linkage img name 一個 alt 重新 ren

問題描述
開發時新增了jar包,當將增量包部署到測試服務器後啟動應用出現如下錯誤提示:
java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) previously initiated loading for a different type with name "org/w3c/dom/TypeInfo"
註:開發使用tomcat,測試服務器使用weblogic。
錯誤原因
weblogic自帶的jar包與項目的jar包沖突。
報錯信息
在項目工程中隨便一個類文件下,把org/w3c/dom/TypeInfo改成org.w3c.dom.TypeInfo,查看這個jar的信息:(Crtl+TypeInfo)。找到沖突的jar包(xmlbeans-2.3.0.jar)。

技術分享圖片

解決方案(三種)
1.刪除項目工程下jar包

技術分享圖片

因為項目的weblogic.xml配置是優先加載項目下的jar包,所以刪除項目工程下的xmlbeans-2.3.0.jar 包,然後 重新部署 或 重啟應用。
[weblogic@dfjk-test ~/sbin]$ sh redeploy.sh Mobileproj

技術分享圖片

2.刪除weblogic下的 相關的 xmlbean jar包

不建議用這種方式,因為有可能其他項目在用weblogic下的這個jar包,而且查找weblogic下的jar包沖突信息也比較費時。

3.配置weblogic.xml
刪除優先加載的項目jar的配置或是設置改為false,不建議使用,因為可能其他jar包夜存在沖突。

技術分享圖片

開發使用tomcat生產使用weblogic造成jar包沖突如何解決?