有时候web项目部署在weblogic下会发生找不到依赖的问题,报错如:
java.lang.reflect.InvocationTargetException
java.lang.NoSuchMethodError: xxx.xxx.xxx.........
百度找了很久大多数都说是因为依赖冲突的问题,但我找了很久没发现我的项目下有依赖冲突的包。
因此考虑是weblogic加载依赖的顺序问题。
通过在 WEB-INF 下新建 weblogic.xml
在其中添加以下代码实现优先加载指定依赖
<?xml version="1.0"?>
<weblogic-web-app
xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
<container-descriptor>
<prefer-application-packages>
<!-- 包路径 -->
<package-name>org.apache.xmlbeans.*</package-name>
<package-name>org.apache.poi.*</package-name>
</prefer-application-packages>
</container-descriptor>
</weblogic-web-app>
重启后解决报错