ear/lib 中 jars 的类加载顺序
wildfly order of classloading for jars in ear/lib
我有以下部署到 WildFly 9.0.2 的 EAR 结构
root.ear
|-ejb1.jar
|-ejb2.jar
|-lib/
|-libA.jar
|-libB.jar
libA.jar和libB.jar都具有相同的class。我无权修改 libB.jar,我需要两个 EJB 模块从 libA.jar 中选择 class。
如何像我们对 classpath 那样通过按要求对 jar 进行排序来强制执行此操作?
如果您的 EJB jar 需要访问两个 jar 中的 classes,那么您必须从 libB.jar.
中删除不需要的 class
在 class 可见性方面,EAR 库目录中的所有 jar 都被认为是同一个模块。这是 Java EE 规范规定的。
您 可能 在每个 EJB jar 中向 MANIFEST.MF 文件添加一个 Class-路径条目:
Class-路径:lib/libA.jar lib/libB.jar
我有以下部署到 WildFly 9.0.2 的 EAR 结构
root.ear
|-ejb1.jar
|-ejb2.jar
|-lib/
|-libA.jar
|-libB.jar
libA.jar和libB.jar都具有相同的class。我无权修改 libB.jar,我需要两个 EJB 模块从 libA.jar 中选择 class。
如何像我们对 classpath 那样通过按要求对 jar 进行排序来强制执行此操作?
如果您的 EJB jar 需要访问两个 jar 中的 classes,那么您必须从 libB.jar.
中删除不需要的 class在 class 可见性方面,EAR 库目录中的所有 jar 都被认为是同一个模块。这是 Java EE 规范规定的。
您 可能 在每个 EJB jar 中向 MANIFEST.MF 文件添加一个 Class-路径条目:
Class-路径:lib/libA.jar lib/libB.jar