2017-04-03 53 views
0

我有一個包含2個戰爭文件的耳朵,每個戰爭都包含無狀態的ejb和澤西休息班。接口位於commons.jar文件中。耳結構如下:無國籍的ejb在WAR>包到EAR>本地ejb電話

EAR 
-- /lib/commons.jar 

-- rest-1.war 
     -- stateless-ejb-1.java 
     -- jersey-rest-1.java 

-- rest-2.war 
     -- stateless-ejb-2.java 
     -- jersey-rest-2.java 

我試圖從無國籍的EJB-2使用無狀態的EJB-1 @Inject註解,但是我在部署的時候得到一個CDI deployment failure:WELD-001408: Unsatisfied dependencies錯誤。當我在無狀態-ejb-2中使用@EJB時,耳朵被部署,但在調用jersey-rest-2時出現遠程查找錯誤。

這是我的方法調用鏈:

  • 球衣休息-1>無狀態的EJB-1:正常工作
  • 球衣休息-2>無狀態的EJB-2> stateless- EJB-1:我得到一個ejb-1查找錯誤

我不想因爲一切都打包在同一個耳朵使用遠程EJB調用(我想用@Inject替代@EJB),但它不起作用。

我想,如果我將stateless-ejb-1.java打包到jar中,並將其放在EJB/lib下,它就會工作。但我不想在我的項目中創建一個新模塊,只是將這一個文件打包到單獨的jar文件中。 解決方案是什麼?

回答

1

您需要將​​移動到EAR中的ejb-jar模塊中。

即使構建到EAR文件中,不同WAR文件中的類彼此也不可見。