我已经在weblogic 12c上实现了简单的EJB 3.0。 EJB包含对不同EJB的引用,作为成员声明为带有注释@EJB的已实现本地接口的引用。当我调用封装EJB的方法时,我得到一个空指针异常。当我使用@SessionContext或@Resource respectivley注入会话上下文或数据源时,不会发生同样的情况。我想要了解的是我必须在中定义一个引用 在weblogic.xml中,用于链接两个EJB。对于所有生产级应用程序服务器(如jboss,websphere或Tomcat EE)都是如此。
以下是有关代码和详细信息的详细信息。部署:
@Remote
public interface MyEjbRemote1 {
abstract public void func1();
}
@Stateless
public class MyEJB1 implements MyEjbRemote1 {
public void func1() {}
}
@Remote
public interface MyEjbRemote {
abstract public void func();
}
@Stateless
public class MyEjb implements MyEjbRemote, MyEjbLocal {
@EJB
MyEjbRemote1 ejb1;
@Resource
SessionContext sessionContext;
public void func() {
ejb1.func1();
}
public void func1() {
System.out.println("Local interface call for EJB");
}
}
使用远程接口调用func1方法会抛出空指针异常。
我没有在ejb-jar.xml,weblogic-ejb-jar.xml或weblogic.xml中添加任何细节。我的问题是需要哪些额外的细节。