Weblogic 10.3.1.0正在使用com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar …我想从我的代码使用commons-net-2.0.jar.
如何强制它在我的代码中使用较新的JAR?
解决方法
I want to use commons-net-2.0.jar from my code.
WebLogic使用父类加载器第一个策略,您基本上有两个选项来调整此行为:
>在weblogic.xml中使用prefer-web-inf-classes元素Web应用程序部署描述符(在WEB-INF旁边的web.xml)〜或〜
>将您的战争内幕人员打包成EAR,并使用您在weblogic-application.xml描述符(在Meta-INF旁边的application.xml中配置)中配置的WebLogic Filtering classloader,
以下是一个weblogic.xml示例:
<?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic- web-app.xsd"> <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> </weblogic-web-app>
以下是一个weblogic-application.xml示例:
<?xml version="1.0" encoding="UTF-8"?> <weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"> <application-param> <param-name>webapp.encoding.default</param-name> <param-value>UTF-8</param-value> </application-param> <prefer-application-packages> <package-name>javax.jws.*</package-name> </prefer-application-packages> </weblogic-application>
前一个选项更简单,但对于webapp而言是全局的.如果您目前没有使用EAR包装,但是提供了更好的控制,后来引入了更多的复杂性.
也可以看看