JavaEE @EJB vs @Resource



我有一个关于JavaEEBeans的问题。我已经使用Spring和Hibernate开发了很长一段时间,现在我改为JavaEE——因此,如果这是一个非常简单的问题,我很抱歉,但目前我不知道如何处理我的问题。

我有两个在JNDI中注册的Bean(在JBoss上-见上文)到目前为止还可以。如果我在Servlet中使用@EJB作为依赖项注入,那么它工作得很好:

@EJB(name = "jndi/TestClassBean")
public TestClass testClass;
@EJB(name = "jndi/OtherBean")
public OtherBean otherBean;

如果我用@Resource更改@EJB,那么我会得到一个NullPointerException:

@Resource(name = "jndi/TestClassBean")
public TestClass testClass;
@Resource(name = "jndi/OtherBean")
public OtherBean otherBean;

enyone知道用@Resource做什么吗?我没有在deplyment描述符中声明任何内容-@Resource必须在DD中声明吗?谢谢

16:39:51482 INFO[org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor](MSC服务线程1-7)部署单元部署中名为OtherBean的会话bean的JNDI绑定。。。

java:global/salzburgag-javaeetest-frontend/OtherBean!at.maxqu.test.OtherBeanLocal
java:app/...-javaeetest-frontend/OtherBean!at.maxqu.test.OtherBeanLocal
java:module/OtherBean!at.....test.OtherBeanLocal
java:global/...-javaeetest-frontend/OtherBean!at.....test.OtherBean
java:app/...-javaeetest-frontend/OtherBean!at.....test.OtherBean
java:module/OtherBean!at.maxqu.test.OtherBean

16:39:51490 INFO[org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor](MSC服务线程1-7)部署单元部署中名为TestClassBean的会话bean的JNDI绑定。。。

java:global/...-javaeetest-frontend/TestClassBean!at.....javaeesimpletest.TestClass
java:app/...-javaeetest-frontend/TestClassBean!at.....javaeesimpletest.TestClass
java:module/TestClassBean!at.maxqu.javaeesimpletest.TestClass
java:global/...-javaeetest-frontend/TestClassBean!at.....javaeesimpletest.TestClassBean
java:app/...-javaeetest-frontend/TestClassBean!at.....javaeesimpletest.TestClassBean
java:module/TestClassBean!at.....javaeesimpletest.TestClassBean

16:39:52272 INFORMATION[javax.enterprise.resource.webcontainer.jsf.config](MS

尝试使用lookup:

@Resource(lookup = "java:global/...-javaeetest-frontend/TestClassBean!at.....javaeesimpletest.TestClass")
public TestClass testClass;
@Resource(lookup = "java:global/salzburgag-javaeetest-frontend/OtherBean!at.maxqu.test.OtherBeanLocal")
public OtherBean otherBean;

最新更新