weblogic部署应用时会优先检查自身的jar包,再检查工程里的,如果发现工程里有重复的就会报错。
目 前发现在电子印章2.0基础上开发的太平人寿项目在部署时会报“java.lang.LinkageError:loader constraint violation: loader (instance ofweblogic/utils/classloaders/ChangeAwareClassLoader) previously initiatedloading for a different type with name "javax/xml/namespace/QName””异常,解决办法是:在WEB-INF下新建一个名为“weblogic.xml”的文件,内容 为
<?xmlversion="1.0" encoding="UTF-8"?>
<wls:weblogic-web-appxmlns:wls="http://www.bea.com/ns/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
<wls:weblogic-version>12.2</wls:weblogic-version>
<wls:context-root>job</wls:context-root>
<container-descriptor>
<prefer-application-packages>
<package-name>org.apache.commons.*</package-name>
<package-name>org.apache.log4j.*</package-name>
<package-name>org.slf4j.*</package-name>
</prefer-application-packages>
<!--<prefer-web-inf-classes>true</prefer-web-inf-classes> -->
</container-descriptor>
</wls:weblogic-web-app>
即可预先加载冲突的类避免异常。