当我将JSF bean从WAR模块移动到Java库(JAR)时,@ EJB不起作用

时间:2013-09-30 14:45:45

标签: jsf java-ee netbeans

我在WAR模块中有一个JSF bean,它有一个可以工作的@EJB。当我将JSF bean移动到Java库(JAR)时,@ EJB不起作用(当我尝试访问EJB时,我得到NullPointerException)。我需要从方案I转到方案II:

情景I:

企业应用程序

WAR模块:

JSF页面:

<p>#{testController.test}</p>

JSF Bean:

@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();
    }

}

情景II:

企业应用程序

WAR模块:

JSF页面:

<p>#{testController.test}</p>

JSF Bean:

[Empty - 将JSF bean移到Java库(JAR)]

EJB模块:

@Stateless
public class TestEjbImpl implements TestEjb {

    @Override
    public String test() {
        return (new Date()).toString();
    }

}

Java Library(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

0 个答案:

没有答案