Java Weblogic 12c ear应用程序-从Weblogic或FMW模块加载类

Java Weblogic 12c ear应用程序-从Weblogic或FMW模块加载类,java,jakarta-ee,weblogic,classloader,Java,Jakarta Ee,Weblogic,Classloader,我面临着一种不太常见的情况。下面是myApp.ear的示例结构 myApp.ear |-APP-INF |-解放党 |-myCode-package1.jar |-myCode-package2.jar |-commons-io.jar |-xercesImpl.jar |-xmlbeans.jar |-... |-… 正如您所看到的,我们的ear不仅包含代码,还包含在/wlserver/modules/或/oracle\u common/modules中可用的库/jar,或者在某些情况下两者都

我面临着一种不太常见的情况。下面是myApp.ear的示例结构

myApp.ear
|-APP-INF
|-解放党
|-myCode-package1.jar
|-myCode-package2.jar
|-commons-io.jar
|-xercesImpl.jar
|-xmlbeans.jar
|-...
|-…

正如您所看到的,我们的ear不仅包含代码,还包含在
/wlserver/modules/
/oracle\u common/modules
中可用的库/jar,或者在某些情况下两者都可用

在大多数情况下,我们使用这些第三方库中最基本的功能。因此,我们一般不热衷于特定版本的库。我想摆脱这些第三方开源库,这些库与myApp.ear一起提供,尽管它们在Weblogic中可用

删除第三方的原因:

  • 我们公司要求我们捆绑最新版本的可用库(可能是出于安全原因)。如果我们捆绑它们,如果第三方库被更新,那么更新的责任就是我们自己。这是我们在每次发布期间的开销,我们希望避免这种情况
  • 其次,它将使我们的构建/部署更快,我们的应用程序也更轻
当我试图删除时,我想我的ear类加载器会自动从Weblofic模块中提取所需的类。相反,在服务器启动期间,我得到了各种ClassNotFound异常。我在
首选应用程序包
首选web inf类
等方面找到了很多文章/文献,这些与我的要求完全相反


我可能在这里遗漏了一些非常基本的东西(或者做了一些愚蠢的事情:)。

类路径问题。这并不是因为WebLogic提供了这些库,而是意味着它们会自动放在应用程序的类路径中。您可以将它们添加到服务器的类路径中,以使它们对应用程序可用。您应该维护自己的依赖关系。WebLogic附带的JAR是其实现的一部分,可以根据Oracle的意愿进行更改/删除。WebLogic只负责向您的应用程序公开JavaEEAPI,而不负责其他事情。