java - 在EJB3中如何使用JNDI获取一个新的Stateful Session Bean?

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

我正在尝试使用 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/

相关文章:

java - 什么是非 Java 代码?

java - 如何从 SFSB 的 SessionContext 获取业务对象

java - 创建 EJB 3.0 或 3.1

java - Xuggler/Java 视频缩略图

java - 如何在 android 中解决 java.lang.IndexOutOfBoundsException?

jakarta-ee - Java EE 6 框架仅适用于 Web 应用程序吗?或者我也可以将其用于客户端应用程序吗?

java - EHCache 2.10 中的缓存层次结构

java - HTTP GET 请求获取 HTML 页面代码而不是预期的 json 响应

annotations - JavaEE 6 : @EJB(beanInterface ="")

java - 暂停 Android 应用程序,直到按下按钮