首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaEE @EJB与@Resource

JavaEE @EJB与@Resource
EN

Stack Overflow用户
提问于 2015-02-12 06:39:23
回答 1查看 819关注 0票数 2

我想问一个关于JavaEE Beans的问题。我已经用Spring和Hibernate开发了很长一段时间,现在我改用了JavaEE --所以很抱歉,如果这是一个非常简单的问题,但是目前我不知道如何处理我的问题。

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

代码语言:javascript
复制
@EJB(name = "jndi/TestClassBean")
public TestClass testClass;
@EJB(name = "jndi/OtherBean")
public OtherBean otherBean;

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

代码语言:javascript
复制
@Resource(name = "jndi/TestClassBean")
public TestClass testClass;
@Resource(name = "jndi/OtherBean")
public OtherBean otherBean;

你知道怎么做才能用@Resource完成它吗?我在就业描述中没有任何声明-- @Resource是否必须在DD中声明?谢谢!

16:39:51,482 INFO org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor JNDI绑定为名为OtherBean的会话bean在部署单元部署中.

代码语言:javascript
复制
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个关于在部署单元部署中名为org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor的会话bean的TestClassBean JNDI绑定。

代码语言:javascript
复制
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 )

EN

回答 1

Stack Overflow用户

发布于 2020-04-08 17:37:49

尝试使用lookup

代码语言:javascript
复制
@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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28470946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档