weblogic 工程java.lang.LinkageError 错误解决

今天开发时,本地测试正常 ,本地用tomcat服务器,更新到生产上报如下错误,生产采用weblogic服务器。
java.lang.LinkageError:loader constraint violation: loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) previously initiated loading for a different type with name “javax/xml/transform/Source”
在这里插入图片描述

根据错误信息可以看到是由于weblogic下载项目的jar包于项目本身的jar冲突了。
javax/xml/transform/Source 就是 javax.xml.transform.Source 我们找到jar jaxrpc.jar 看到并没有Source。

weblogic 工程java.lang.LinkageError 错误解决_第1张图片
看到项目的jar包中没有找到该jar包,那只有jdk中jar与weblogicjar冲突了。
我们找到jdk中rt.jar 找到了
javax.xml.transform.Source
weblogic 工程java.lang.LinkageError 错误解决_第2张图片
我们 再来看看weblogic 下载的jar包 路径 :

weblogic/Oracle/Middleware/wlserver_10.3/server/lib

weblogic 工程java.lang.LinkageError 错误解决_第3张图片
但是 实在没有找到webloic中的jar。
所以实在无法找到冲突的jar,就找到了一个简单粗暴的 方法,由于本项目jar不需要weblogic的依赖jar,所以找到weblogic.xml。
prefer-web-inf-classes 中true 改为false。
修改前
weblogic 工程java.lang.LinkageError 错误解决_第4张图片
修改后
weblogic 工程java.lang.LinkageError 错误解决_第5张图片
即将weblogic优先加载的项目jar的配置设置改为false,不在优先从weblogic加载jar包。
重启后成功解决,但是最好还是找到真正的冲突jar所在。

你可能感兴趣的:(weblogic)