【问题标题】:JavaEE @EJB vs @ResourceJavaEE @EJB 与 @Resource
【发布时间】:2015-02-12 06:39:23
【问题描述】:

我有一个关于 JavaEE Beans 的问题。 我已经用 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 descriptior 中声明任何内容 - @Resource 是否必须在 DD 中声明它? 谢谢!

16:39:51,482 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:51,490 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:52,272 信息 [javax.enterprise.resource.webcontainer.jsf.config](MS

【问题讨论】:

标签: java jakarta-ee ejb


【解决方案1】:

尝试使用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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多