【问题标题】:How to use JNDI to obtain a new Stateful Session Bean, in EJB3?如何在 EJB3 中使用 JNDI 获取新的 Stateful Session Bean?
【发布时间】:2010-05-15 03:09:06
【问题描述】:

我正在尝试使用 JNDI 在 servlet 中获取新的有状态会话 Bean(作为局部变量)。我的doGet() 方法有以下内容:

Bean bean = (Bean) new InitialContext().lookup("beanName");

我尝试过包含java:comp/env,但我所有的尝试都导致了命名异常。

我正在尝试使用@Stateful(name="beanName")@Stateful(mappedName="beanName") 等各种猜测将bean 绑定到@Stateful 注释中

【问题讨论】:

  • 好的,我想通了。如果其他人对此问题感兴趣,我会在下周回答。

标签: java jakarta-ee ejb-3.0 jndi stateful-session-bean


【解决方案1】:

我需要的是在类级别的servlet上使用@EJB注解,如下:

@EJB(name="beanName", beanInterface = Bean.class)

然后可以使用@EJB注解绑定的名称在服务方法中进行查找:

Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");

除了普通的@Stateful 注释之外,Bean 类本身不需要任何东西。

【讨论】:

  • 你好...我想知道你是如何解决这个问题的,我尝试了你的解决方案,但它对我不起作用!
  • @Marci-man 很遗憾听到这个消息。我当然不记得我没有记录的任何东西,那是 30 多个月前的事了。也许您可以根据您的具体情况提出一个新问题。
  • 我解决了....我让 Netbeans 为我做这件事。我在编辑器中右键单击并选择插入代码,然后从那里选择 Business Bean,然后选择我的业务 bean,Netbeans 会处理所有事情。它创建了一个 bean 的实例和一个返回初始化 bean 的方法!我和 Netbeans 有一种爱恨交织的关系:D
猜你喜欢
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 2014-11-20
  • 1970-01-01
  • 2011-12-28
  • 2013-06-22
相关资源
最近更新 更多