我在 weblogic 服务器中创建了一个包含一些 jar 文件的共享库,现在我有一个 EAR 应用程序,我想在 EAR 应用程序中的 Web 应用程序中使用共享库中的类文件。因此,我在 ear-app/META-INF/
目录中创建了 weblogic-application.xml
文件,并使用以下标签引用了共享库:
<library-ref>
<library-name>ebs_endeca_artifacts</library-name>
</library-ref>
但是当我试图访问我的应用程序中的类文件时,出现异常 java.lang.ClassNotFoundException
我还需要在耳朵级别引用共享库,而不是在单个 war 文件的 weblogic.xml
文件中声明。
如果我直接将相同的 jar 文件放在我的 ear-app/APP-INF/lib
目录中而不是使用共享库,那么我的应用程序可以正常工作,没有任何问题。
请帮助我如何在我的 ear 应用程序中使用共享库。我正在使用 weblogic server 10.3.6
我的共享库结构是这样的:
shared-web-app/WEB-INF/web.xml
shared-web-app/WEB-INF/lib/*.jar
最佳答案
您需要类路径中共享库中的 jar,因为在部署 EAR
之前,需要构建应用程序。 JDeveloper 不知道这些类存储在哪里,因此它需要位于 compile-time
的那些类.
准备部署应用程序时,您可以为可以在 WAR
中添加的文件创建过滤器/EAR
/<whatever>
.转到 Application Properties
-> Deployment
并选择您的部署配置文件。点击Edit
按钮,系统会提示一个屏幕,您可以从中过滤构建应用程序时可以包含的文件/库。
如果您不在存档中包含共享库并且有来自 weblogic-application.xml
的片段您已发布,WebLogic 服务器随后将使用共享库中的类。
希望对您有所帮助。问任何你不明白的评论。 :)
关于java - 在 weblogic 中为 EAR 应用程序引用共享 Java EE 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671757/