我需要从 ConversationScoped bean 调用 EJB 中使用 @Asynchronous 注释的方法。在这个方法中,我使用 @Inject 创建了一些类的实例来注入 ConversationScoped bean。是否可以将异步方法的上下文设置为给定的对话?
我希望你能帮助我。
我需要从 ConversationScoped bean 调用 EJB 中使用 @Asynchronous 注释的方法。在这个方法中,我使用 @Inject 创建了一些类的实例来注入 ConversationScoped bean。是否可以将异步方法的上下文设置为给定的对话?
我希望你能帮助我。
不,绝对不是。根据定义,EJB 不是在 Web 容器中运行,而是在 EJB 容器中运行。本质上,javax.faces.*
在 EJB 类中包含任何与 Web 相关的工件/依赖项(包括类)都是红色警报。您不应该从业务层(EJB/EAR)中的客户端层(WAR)注入/访问任何类。此外,会话范围的 bean 与 HTTP 请求参数相关联,并且此信息在 EJB 容器中无处可用。
无论您试图解决什么问题,并且您错误地认为这一切都是正确的解决方案,都必须以不同的方式解决。作为一个有根据的猜测,我认为您只需要让 EJB 触发 CDI 事件或接受回调参数。