我在 WAR 模块中有一个 JSF bean,它有一个可以工作的 @EJB。当我将 JSF bean 移动到 Java 库 (JAR) 时,@EJB 不起作用(当我尝试访问 EJB 时出现 NullPointerException)。我需要从场景 I 转移到场景 II:
情景一:
企业应用
战争模块:
JSF 页面:
<p>#{testController.test}</p>
JSF 豆:
@Named
public class TestController {
@EJB
private TestEjb testEjb;
public String getTest() {
return testEjb.test();
}
}
EJB 模块:
@Stateless
public class TestEjbImpl implements TestEjb {
@Override
public String test() {
return (new Date()).toString();
}
}
场景二:
企业应用
战争模块:
JSF 页面:
<p>#{testController.test}</p>
JSF 豆:
[空 - JSF bean 已移至 Java 库 (JAR)]
EJB 模块:
@Stateless
public class TestEjbImpl implements TestEjb {
@Override
public String test() {
return (new Date()).toString();
}
}
Java 库 (JAR):
@Named
public class TestController {
@EJB
private TestEjb testEjb;
public String getTest() {
return testEjb.test(); // Here I get a NullPointerException
}
}
我创建了一个带有重现此问题的 Java 库的企业应用程序项目。这是一个 Netbeans 项目:https ://dl.dropboxusercontent.com/u/64616807/stackoverflow/jee6.rar