@在Web应用程序中注入@Remote EJB

时间:2018-06-28 16:52:20

标签: java cdi ejb-3.2

在Web应用程序中可以@Inject@Remote EJB吗? 我在Glassfish 5上运行,并且正在部署EAR(EJB + WAR)。

当我使用@Local注释EJB接口时,CDI起作用,而@Remote则不起作用。
可能是什么原因?

顺便说一句,使用@EJB代替@Inject可以正常工作,但是我要解决@Inject的问题。

1 个答案:

答案 0 :(得分:1)

CDI无法解析远程ejb Bean。根据规范3.2.2

  

会话bean的不受限制的bean类型集包含所有   Bean的本地接口及其超级接口。如果会议   bean具有无接口视图,无限制的bean集声明一个   会话bean 41类型包含bean类和所有超类。在   另外,java.lang.Object是每个会话bean的bean类型。   远程接口不包含在Bean类型集中。

如果必须使用CDI注入而不是@EJB

,那么您可以做的是为远程接口提供一个字段生成器