2011-08-01 19 views
0

我有以下的Java EE的JBoss的6下部署6個應用:如何在JBoss 6下的多應用程序部署中使用EJB 3.1遠程接口?

  • 與EJB遠程接口
  • 1 WAR-應用與該實現一個共同的JAR EJB遠程接口
  • 第二WAR-應用使用EJB遠程接口POJO(@EJB MyRemoteInterface remoteBean)
  • 兩次戰爭具有提供給公共JAR範圍一個Maven dependeny(不包含作爲WAR的lib內JAR)

現在,所有應用程序都可以正常工作,並且WAR可以使用JAR中的其他常用類。但是在部署期間,我收到錯誤,遠程接口不能被注入。

那麼,處理兩個WAR之間共享接口類文件的正確方法是什麼呢? 我是否必須將它作爲JAR包含在WEB-INF/lib中才能使注入工作成功或者是否足以部署它?

回答

0

在Java EE 6中執行此操作的方法是將通用依賴項包含在.ear文件的lib文件夾中。

您可以在最後的.ear通過配置Maven此文件夾的位置:

<plugin> 
    <artifactId>maven-ear-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
      <defaultLibBundleDir>/lib</defaultLibBundleDir> 
     <version>5</version> 
... 
</plugin> 
+0

也許我沒有把我的不夠清晰 - 到現在爲止,我不想捆綁共同罐子到WAR(不是EAR),因爲它們也包含實體和我不想部署兩次的持久性單元。它可以很好地與實體和其他幫助程序類一起工作,只有EJB引用無法注入,所有在編譯過程中遠程接口類文件對WAR應用程序都是可見的。所以我的問題是,如果有可能使用一個注入的遠程接口將其放入單獨部署的JAR中,還是必須位於WARs庫中? –

+0

出於某種原因,我認爲你有一個耳朵文件,你的所有戰爭的生活,我的道歉。 我相信這樣做的正確和直接的方式是將所有東西捆綁在一起,正如我在上面所解釋的。阻止你使用.ear文件嗎? –

+0

那麼,從JEE 6起,你可以使用更簡單的WAR包裝,這就是我所做的。但是我認爲,問題與包格式無關,只是可以注入某些作爲獨立JAR部署的東西。 –

相關問題