我正在尝试使用JNDI在servlet(作为本地变量)中获取新的有状态会话Bean。我的doGet()
方法具有以下内容:
Bean bean = (Bean) new InitialContext().lookup("beanName");
我尝试过包含
java:comp/env
,但是所有尝试都导致了异常的命名。我正在尝试使用
@Stateful
和@Stateful(name="beanName")
之类的各种猜测将豆绑定在@Stateful(mappedName="beanName")
批注中 最佳答案
我需要的是在类级别的servlet上使用@EJB
批注,如下所示:
@EJB(name="beanName", beanInterface = Bean.class)
然后,可以使用
@EJB
批注绑定的名称在service方法中进行查找:Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");
除了普通的
@Stateful
批注外,Bean类本身不需要任何其他内容。