我正在使用 Maven 来构建应用程序。
我已经部署了一个包含许多常见 jar 的 WAR 文件作为应用程序服务器中的共享库。
我有一个封装类型 EJB 的工件(比如 A-EJB)。我已经构建了 ejb jar 文件。
我有另一个包装类型 EAR 的工件(比如 A-EAR)。
我在 A-EAR 的 pom 文件中添加了 A-EJB 依赖项。我可以构建 EAR 文件并添加共享库引用,我在 EAR 的 weblogic-application.xml 中添加了库引用。
在我的最终 EAR 文件中,我可以看到 A-EJB.jar 文件,以及 A-EAR 工件的其他依赖项 jar 文件。
EAR 结构:
--------------APP-INF\lib\some jars
--------------META-INF\application.xml, MANIFEST.MF , weblogic-application.xml
--------------A-ejb.jar
A-EJB.jar 的类文件需要引用共享库中的常用jar。
理想情况下,我希望部署应该成功进行,但这并没有发生。尽管我在 EAR 文件中共享了库引用,但在部署期间准备 EJB 模块时,由于 classNotFoundException 导致部署失败。
A-EJB.jar 的类文件搜索所需的 jar 文件以供参考,但它们在共享库中可用,即使 EAR 文件引用了共享库,也不使用共享库。
例外:
weblogic.application.ModuleException:异常准备模块:EJBModule [EJB:011023]读取部署描述符时发生错误。错误是:.................................................. ......
引起:java.lang.ClassNotFoundException:...................................... .....................
因此,这意味着即使 EAR 具有共享库引用,EAR 中存在的 ejb.jar 也没有对共享库的引用。这是真的 ?
有没有人遇到过这种异常和情况。请帮助我解决这个问题。