lib / jar中的类访问EJB中的EJB

时间:2017-02-06 19:46:37

标签: jar ejb inject lib

我的申请结构是

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

myWAR.war有一个servlet类,它调用具有ejb调用的DataHelp.class。

//  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。

感谢。

1 个答案:

答案 0 :(得分:2)

要正确处理DataHelper类中的ejb注入,data.jar应该作为ejb jar模块在MyEAR.ear中,而不是在lib中。如果你想在其他项目中使用它,可以将它作为ejb jar放入耳中。然后将以下内容添加到application.xml

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