gpt4 book ai didi

java - 没有 @EJB 注入(inject)的 servlet 上的有状态 ejb 问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:11 24 4
gpt4 key购买 nike

我正在尝试使用 servlet 中的有状态 ejb,但根据我的理解,我不应该使用 @EJB 注入(inject)来执行此操作,而应该进行查找。

问题是,到目前为止,我设法实现此目的的唯一方法是在 servlet 上使用此注释:

@EJB(name="LoginRemote", beanInterface = LoginRemote.class)
LoginRemote loginHandler;

然后查找:

loginHandler = (LoginRemote) new InitialContext().lookup("java:comp/env/LoginRemote");

否则我总是会收到 javax.servlet.ServletException: javax.naming.NameNotFoundException 错误。

这是可以接受的还是我应该完全避免 @EJB 注入(inject)?

谢谢

最佳答案

不,您不想将实例注入(inject)到 servlet 中。相反,您可以在 servlet 类本身上使用 @EJB 注释来声明引用而不注入(inject):

@EJB(name="LoginRemote", beanInterface = LoginRemote.class)
public class MyServlet {

如果您想在同一个 servlet 中声明多个引用,可以使用 @EJBs

(请注意,当在示例中使用字段上的注释时,beanInterface 参数与字段类型是多余的,但在使用类级别注释类时是必需的。)

关于java - 没有 @EJB 注入(inject)的 servlet 上的有状态 ejb 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com