我有一个问题,将 EJB 的引用保存为非 EJB 类的成员(在 EJB 中用作静态成员)
说我有
@EJB(...)
@Stateless
public Class SessionBean implements MySession{
protected static MyHelper helper = new MyHelper();
}
public Class MyHelper{
protected AnotherSessionBean ejb = lookup("jndi");
public void doSomething(){
ejb.foo();
}
}
因为帮助类不是 EJB,所以我有一个查找方法,称为 int 成员实例化。使用此代码,我在运行时遇到异常 java.lang.NoClassDefFoundError: Could not initialize class on SessionBean 类。
当我将 MyHelper 更改为此时,它起作用了:
public Class MyHelper{
protected AnotherSessionBean getEjb(){
return (AnotherSessionBean)lookup("jndi");
}
public void doSomething(){
getEjb().foo();
}
}
想知道为什么第一种方法不起作用...