我在 Weblogic 中的应用程序中遇到了一些类加载问题。我的代码中有一些地方的类依赖于其他 jar 中的类,我必须缺少一些基本的东西。
通过查看我可以找到的信息,如果两个 jar 都在类路径上,这应该不是问题,但这在 Weblogic 上的 Java EE 应用程序上下文中似乎更加微妙。
我有一只耳朵,MyApp.ear
MyApp.ear 包含几个 webapps (war) 和一大堆实用程序 jar 和 EJB。结构是这样的(我不控制它)。
MyApp.ear
MyWebApp.war
UtilJar1.jar
UtilJar2.jar
etc...
假设 UtilJar1 中有从 UtilJar2 导入类的类。什么 MANIFEST.MF 应该指定两个 jar 都应该在类路径上?耳朵?Webapp 的?UtilJar1 的?
从反复试验(Weblogic 10.3.2)来看,这似乎可行的唯一方法是在 UtilJar1 的清单类路径中定义 UtilJar2。但我会认为在 webapp 的上下文中,webapp 的类路径将用于该 webapp 中发生的任何类加载?相反,除非在第一个 jar 的类路径中指定了第二个 jar,否则我会看到 NoClassDefFound。