我正在尝试使用 JNDI 在 servlet 中获取一个新的有状态 session Bean(作为局部变量)。我的 doGet()
方法具有以下内容:
Bean bean = (Bean) new InitialContext().lookup("beanName");
我试过包含 java:comp/env
但我所有的尝试都导致了命名异常。
我试图在 @Stateful
注释中绑定(bind) bean,使用各种猜测,如 @Stateful(name="beanName")
和 @Stateful (mappedName="beanName")
最佳答案
我需要的是在类级别的 servlet 上使用 @EJB
注释,如下所示:
@EJB(name="beanName", beanInterface = Bean.class)
然后可以使用 @EJB
注释绑定(bind)的名称在服务方法中进行查找:
Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");
除了简单的 @Stateful
注释之外,Bean 类本身不需要任何东西。
关于java - 在EJB3中如何使用JNDI获取一个新的Stateful Session Bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838769/