在Web应用程序中可以@Inject
到@Remote
EJB吗?
我在Glassfish 5上运行,并且正在部署EAR(EJB + WAR)。
当我使用@Local
注释EJB接口时,CDI起作用,而@Remote
则不起作用。
可能是什么原因?
顺便说一句,使用@EJB
代替@Inject
可以正常工作,但是我要解决@Inject
的问题。
答案 0 :(得分:1)
CDI无法解析远程ejb Bean。根据规范3.2.2
会话bean的不受限制的bean类型集包含所有 Bean的本地接口及其超级接口。如果会议 bean具有无接口视图,无限制的bean集声明一个 会话bean 41类型包含bean类和所有超类。在 另外,java.lang.Object是每个会话bean的bean类型。 远程接口不包含在Bean类型集中。
如果必须使用CDI注入而不是@EJB