1

我在 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

4

0 回答 0