7

我在 weblogic 服务器中创建了一个包含一些 jar 文件的共享库,现在我有一个 EAR 应用程序,我想在 EAR 应用程序中存在的我的 Web 应用程序中使用共享库中的类文件。所以我weblogic-application.xml在我的ear-app/META-INF/目录中创建了文件,并使用以下标签引用了共享库:

<library-ref>
    <library-name>ebs_endeca_artifacts</library-name>
</library-ref>

但是当我试图访问我的应用程序中的类文件时,我遇到了异常java.lang.ClassNotFoundException

我还需要在耳朵级别引用共享库,而不是在weblogic.xml单个战争文件的文件中声明。

如果我直接将相同的 jar 文件放在我的ear-app/APP-INF/lib目录中而不是使用共享库,那么我的应用程序可以正常工作,没有任何问题。

请帮助我如何在我的耳朵应用程序中使用共享库。我在用weblogic server 10.3.6

我的共享库结构将是这样的:

shared-web-app/WEB-INF/web.xml
shared-web-app/WEB-INF/lib/*.jar
4

1 回答 1

4

您需要类路径中共享库中的 jar,因为在部署之前EAR,需要构建应用程序。JDeveloper 不知道这些类存储在哪里,因此它需要compile-time.

在准备部署应用程序时,您可以为可以添加到WAR//中的文件创建过滤EAR<whatever>。转到Application Properties->Deployment并选择您的部署配置文件。单击Edit按钮,将出现一个屏幕提示,您可以从中过滤构建应用程序时可以包含的文件/库。

如果您没有在存档中包含共享库并且拥有weblogic-application.xml您已发布的片段,那么 WebLogic 服务器将使用共享库中的类。

希望有帮助。问任何你不明白的评论。:)

于 2013-05-21T14:04:34.910 回答