java - "javax.ejb.NoSuchEJBException: Could not find stateful bean: "

标签 java jboss jakarta-ee ejb-3.0 ejb

我在 Jboss 和 EJB 3.0 的冒险中挣扎得更远。 我加入了带有 EJB 的 Spring 3.0。我有 3 个模块——带有 Spring Controller 的 web 模块、带有我的 EJB bean 的 ejb 模块和带有其他类(如 dao 或一些助手)的 spring mogule。尽在耳边。

因此,在我的 Spring Controller 中,我有以下代码:

@Controller
public class IndexController {

    @EJB
    PaymentRemote paymentRemote;

    @RequestMapping(value = "/index")
    public ModelAndView index() throws Exception {
        ModelAndView mav = new ModelAndView("index/index");     

        paymentRemote.savePayment(123, "bla222");
        paymentRemote.sayGoodbye();
           return mav;
}

在我的 EJB 模块中,我有以下有状态 bean:

@Stateful
@Interceptors( SpringBeanAutowiringInterceptor.class)
public class PaymentRemoteImpl implements PaymentRemote{

    @Autowired
    ExampleService exampleService;

    public void savePayment(long payment, String name) throws Exception {
        exampleService.savePayment(123, "kk");

    }

    @Remove
    public void sayGoodbye() {
        System.out.println("I want to finish my task here!");

    }
}

每个依赖项都已正确注入(inject)。当我用无状态 bean 测试这段代码时,它工作得很好。当谈到有状态的 bean 时,当我调用我的方法 sayGoodbye() 时,我不能再次调用这个 bean。我得到异常:

javax.ejb.NoSuchEJBException: Could not find stateful bean: a74a2l-n1u5tx-gcwd0e6a-1-gcwd18fo-9h

我不明白这种情况:/我要求容器移除 bean,但后来我想再次使用它,但它想再次为我找到同一个 bean。我认为虽然我要求删除它,但它会根据我的要求再次创建。 谁能帮我解决我的问题?我卡住了。

最佳答案

您不能将有状态 session Bean (SFSB) 注入(inject)到可能由多个并发客户端(如 Servlet 或 Controller )共享的多线程组件中。相反,执行 JNDI 查找并将 bean 放入 HttpSession

另见

关于java - "javax.ejb.NoSuchEJBException: Could not find stateful bean: ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3489368/

相关文章:

tcp - 应用程序级校验和,因为 tcp 校验和可能太弱了?

java - 如果一个元素更改位置,则对两个 ArrayList 进行排序,另一个 arraylist 中的第二个元素也更改位置

java - iText DataMatrix 条码分辨率和质量

java - JBOSS AS7.2 启动问题 : Doesnot delpoy?

json - Struts2 JSON 拦截器未填充我的 Action 类

java - 在 Glassfish/Payara 上禁用或隐藏 "ejb-timer-service-app"

java - NLineInputFormat 用法超出了 GC 开销限制

java - Camel Spring Boot CXF 端点测试

rest - Atom Links 与 RESTEasy 的实用程序

java - JBoss 中的库与 Spring 和 Hibernate 发生冲突