Weblogic 10.3.1.0正在使用com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar …我想从我的代码中使用commons-net-2.0.jar

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?

我想从我的代码中使用commons-net-2.0.jar。

WebLogic使用父类加载器第一策略 ,您基本上有两个选项来调整此行为:

  • weblogic.xml Web应用程序部署描述符(位于web.xml旁边的WEB-INF中)中使用prefer-web-inf-classes元素〜或〜
  • 将您的war内部包装到EAR中并使用您在weblogic-application.xml描述符中配置的WebLogic Filtering类加载器 (位于application.xml旁边的META-INF中)

这是一个weblogic.xml示例:

    true   

以下是weblogic-application.xml的示例:

    webapp.encoding.default UTF-8   javax.jws.*   

前一个选项更简单,但对于webapp是全局的。 如果您目前没有使用EAR包装但是提供更好的控制,后者会引入更多复杂性。

也可以看看

  • 了解WebLogic Server应用程序类加载

您是否尝试将所需的JAR放在WAR的\ WEB-INF \ lib,EAR的\ APP-INF \ lib或EAR文件的\ lib目录中?

如果您的项目是一个独立的Web项目(没有EJB),那么将JAR放在WEB-INF \ lib中就足够了。 对于可能具有捆绑在EAR文件中的EJB模块和Web模块的企业应用程序,APP-INF \ lib应该可以工作,尽管我不太确定WebLogic Server对库目录的支持(通常是EAR文件中的\ lib目录) ,但有时可以通过application.xml配置)Java EE 5中提出的概念。

编辑 :在应用程序服务器的库在应用程序中存在的库之前加载的情况下,WebLogic Server的过滤类加载器的function将有助于确保应用程序始终从其类路径而不是服务器的类路径加载正确的类。