我正在尝试使用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类本身不需要任何其他内容。

09-03 17:32