2010-05-15 80 views
2

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

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

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

我试图在@Stateful注释豆结合,利用各种猜测像@Stateful(name="beanName")@Stateful(mappedName="beanName")

+0

好的,我想通了。如果这个问题对其他人很有意思,我会在下周回答。 – 2010-05-15 03:29:19

+0

请张贴您的发现! – bguiz 2010-05-18 01:37:21

回答

2

我需要的是用在类级别的servlet中@EJB注释,如下所示:

Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName"); 
@EJB(name="beanName", beanInterface = Bean.class) 

然后在服务方法可能发生使用由@EJB注释绑定的名称查找

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

+0

你好......我想知道你是如何解决这个问题的,我尝试了你的解决方案,但它对我无效! – 2013-01-03 18:07:11

+0

@ Marci男人很遗憾听到它。我当然不记得任何我没记录的东西,那是在30多个月前。也许你可以根据你的具体情况提出一个新问题。 – 2013-01-03 21:42:40

+0

我解决了它......我让Netbeans为我做。我右键单击编辑器并选择插入代码,然后从那里选择Business Bean,然后选择我的业务bean,Netbeans处理所有事情。它创建了一个bean实例和一个返回初始化bean的方法!我与Netbeans有一种爱恨关系:D – 2013-01-04 13:16:18

相关问题