2013-05-21 100 views
7

我已經在weblogic服務器中創建了一些包含一些jar文件的共享庫,現在我有一個EAR應用程序,並且想要在我的Web應用程序中使用共享庫中的類文件EAR應用程序。所以我創建weblogic-application.xml文件我ear-app/META-INF/目錄中,並給使用參考共享庫如下標籤:在weblogic中引用EAR應用程序的共享Java EE庫

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

但是,當我試圖訪問我的應用程序的類文件,我得到異常java.lang.ClassNotFoundException

此外,我需要在耳朵級別參考共享庫,而不是在個別戰爭文件的weblogic.xml文件中聲明。

如果我直接在我的ear-app/APP-INF/lib目錄中放置相同的jar文件而不是使用共享庫,那麼我的應用程序工作正常,沒有任何問題。

請幫助我如何在我的耳朵應用程序中使用共享庫。我使用weblogic server 10.3.6

我的共享庫的結構是這樣的:

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

回答

4

你需要從共享庫的罐子在classpath中,因爲在部署EAR之前,應用程序需要建立。 JDeveloper不知道這些類存儲在哪裏,因此它需要那些在compile-time

在準備部署應用程序時,您可以爲可在WAR/EAR//<whatever>中添加的文件創建過濾器。請轉至Application Properties - >Deployment並選擇您的部署配置文件。點擊Edit按鈕,系統將提示一個屏幕,您可以在該屏幕上過濾構建應用程序時可以包含的文件/庫。

如果您沒有在存檔中包含共享庫並且已經發布了weblogic-application.xml的片段,那麼WebLogic服務器將使用共享庫中的類。

希望有所幫助。問任何你不瞭解的評論。 :)

+0

感謝kocko,EAR和共享庫都成功部署在weblogic中。但是當我嘗試訪問來自瀏覽器的任何Web應用程序(這是我的EAR的一部分)時,我正面臨着問題。此外,我已更新我的帖子與共享庫的細節。 – chaitanya

+0

所以,據我瞭解,你的共享庫是一個Web應用程序,而不是一個罐子? –

+0

是的kocko,它被打包成web應用程序。 – chaitanya