2017-02-06 28 views
2

我的應用程序結構類的lib /罐訪問EJB在耳

MyEAR.ear 
    |-- MyWAR.war 
    |-- MyEjb.jar 
    |-- lib 
     |- data.jar 
     |- vo.jar 
     |- util.jar 
     |- jpa.jar  

myWAR.war有一個servlet類這就要求DataHelp.class具有EJB調用。

// MyWAR.war 
Class servlet{ 
    DataHelper helper = new DataHelper(). 
    helper.getData(); 
} 

// lib/data.jar 
Class DataHelper{ 
    @EJB 
    MyEjb ejbBean; 

    public Object getData(){ 
     ejbBean.getData(); 
    } 
} 

// MyEJB.jar 
@Stateless 
@LocalBean 
public class MyEjb { 
    @PersistenceContext(unitName = "db.jpa.jar") 
    EntityManager em; 

    public Object getData(){ 
      // JPA 
    } 
} 

MyEjb ejbBean;在DataHelper中爲null。我嘗試將jar移動到ejb.jar旁邊。仍然得到相同的錯誤。

你能幫我配置一下包裝嗎?我需要data.jar在另一個項目中使用,所以它必須是獨立的jar。

謝謝。

+0

的可能的複製[我的耳朵是不是能找到EJB模塊類](http://stackoverflow.com/questions/41306341/my-ear-is-not -eab-module-classes) –

回答

1

爲了正確工作DataHelper類中的ejb注入,data.jar應該在MyEAR.ear中作爲ejb jar模塊,而不是在lib中。如果你想在其他項目中使用它,可以將它作爲耳內的ejb瓶子來做類似的事情。然後添加以下的application.xml

<module> 
    <ejb>data.jar</ejb> 
</module> 
+0

當'data.jar'作爲ejb jar模塊移動到'myEAR.ear'中時......它到底在哪裏?除了'MyEjb.jar'? – Thufir