java - 在 Web 应用程序中 @Inject @Remote EJB

标签 java cdi ejb-3.2

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

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

顺便说一句,使用 @EJB 而不是 @Inject 可以完美地工作,但我准备解决 @Inject 问题。

最佳答案

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

The unrestricted set of bean types for a session bean contains all local interfaces of the bean and their superinterfaces. If the session bean has a no-interface view, the unrestricted set of bean Declaring a session bean 41 types contains the bean class and all superclasses. In addition, java.lang.Object is a bean type of every session bean. Remote interfaces are not included in the set of bean types.

如果您必须使用 CDI 注入(inject)而不是 @EJB

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

关于java - 在 Web 应用程序中 @Inject @Remote EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51088010/

相关文章:

java - 在同一 bean 上使用 EJB 和 JAXWS 时 weblogic 12cR2 烦人的日志

java - PdfPTables[] 数组填充时出现空指针异常

java - Angular向java发送错误的日期格式并且无法在表中创建对象

java - Install4J:stderr 和返回代码重定向到变量仅写入一次

java - 以编程方式退出应用程序的适当方法是什么?

java - 如何将EJB模块部署为wildfly AS中MODULES文件夹下的模块

java - CDI + JPA 存储库

dependency-injection - 你可以在持久实体中使用依赖注入(inject)吗?

java - 通过注入(inject)从 JBoss AS 中的不同 WAR 访问 EJB

java - 如何在wildfly中配置@localbinding和@remoteBinding