如何解决同一服务器上的 EAR 之间的 EJB 注入
我在尝试将应用程序从 Jboss AS6 迁移到 Wildfly 时遇到问题。该应用程序由一个“产品”耳朵、一个“人”耳朵和一个包含共享接口和实用程序的“通用”jar 组成。所有这些都作为模块部署在 Wildfly 应用服务器上。我需要能够将 Person 中定义的服务 bean 注入到 Product 中。 LoginService bean 位于 Person 中,如下所示:
@Stateless
@Remote(LoginService.class)
public class LoginServiceBean implements LoginService {
@Resource
protected SessionContext context;
}
当我构建和部署 Person 耳朵时,我的 jndi 绑定得到以下日志:
java:global/Person/Person-ejb/LoginServiceBean!com.tura.common.service.login.LoginService
java:app/Person-ejb/LoginServiceBean!com.tura.common.service.login.LoginService
java:module/LoginServiceBean!com.tura.common.service.login.LoginService
java:jboss/exported/Person/Person-ejb/LoginServiceBean!com.tura.common.service.login.LoginService
ejb:Person/Person-ejb/LoginServiceBean!com.tura.common.service.login.LoginService
java:global/Person/Person-ejb/LoginServiceBean
java:app/Person-ejb/LoginServiceBean
java:module/LoginServiceBean
在产品项目中,我有一个无状态的 EJB bean
@Stateless(name = "ClientServiceProvider")
public class ClientServiceProviderBean implements ClientServiceProvider{
@EJB(name = "ejb:Person/Person-ejb/LoginServiceBean!com.tura.common.service.login.LoginService")
protected LoginService loginService;
}
当我尝试部署时,它失败并显示错误:
未找到具有接口类型的 EJB 'com.tura.common.service.login.LoginService' 用于绑定 ejb:Person/Person-ejb/LoginServiceBean!com.tura.common.service.login.LoginService"
我尝试了所有我能想到的绑定配置;似乎没有任何效果。我能找到的所有文档似乎都想使用手动 jndi 查找而不是注释。我在这里做错了什么? EAR之间真的没有办法注入服务吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。