我的申请结构是
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。
感谢。
答案 0 :(得分:2)
要正确处理DataHelper类中的ejb注入,data.jar应该作为ejb jar模块在MyEAR.ear中,而不是在lib中。如果你想在其他项目中使用它,可以将它作为ejb jar放入耳中。然后将以下内容添加到application.xml
<module>
<ejb>data.jar</ejb>
</module>