我的应用程序结构是
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 中为空。我尝试将 jar 移到 ejb.jar 旁边。仍然遇到同样的错误。
您能帮我配置一下包装吗?我还需要在另一个项目中使用 data.jar,所以它必须是一个独立的 jar。
为了在 DataHelper 类中正确工作 ejb 注入,data.jar 应该作为 ejb jar 模块位于 MyEAR.ear 中,而不是位于 lib 中。如果您想在其他项目中使用它,请将其作为 ejb jar 放入耳内进行类似操作。然后将以下内容添加到application.xml
<module>
<ejb>data.jar</ejb>
</module>