在weblogic中引用用于EAR应用程序的共享Java EE库

时间:2013-05-21 13:50:25

标签: java weblogic

我在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

1 个答案:

答案 0 :(得分:4)

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

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

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

希望有所帮助。提出任何你不理解的评论。 :)

相关问题