【发布时间】:2016-06-25 13:06:43
【问题描述】:
我在 EAR 中部署了一个 EJB:
@Stateless
@Remote(ActorProvider.class)
public class ActorServiceClient implements Serializable, ActorProvider { ... }
这里是远程接口:
@Remote
public interface ActorProvider { ... }
现在,我使用以下类部署了一个单独的 WAR:
@Singleton
@Startup
public class ShiroStartup implements IShiroStartup {
@EJB
ActorProvider actorProvider;
...
}
我的想法是我在 EAR 中部署我的参与者服务,并且我单独部署一个客户端项目,该项目获取 Shiro 用于授权的ActorProvider(这是辅助的,但我正在使用它)。
我在启动 ShiroStartup 时遇到错误(在我部署了包含提供程序的 EAR 之后):
找不到用于绑定领域的“consumers.ActorProvider”类型接口的 EJB。ShiroStartup/actorProvider
为什么我不能这样做?如果我将 Provider 置于与 ShiroStartup 的战争中,它可以正常工作,但它不会跨部署注入。这是为什么?这是使用 JavaEE 7 的 Wildfly 9。
【问题讨论】:
-
您应该浏览您的 Wildfly JNDI 树以查看您的 EJB 是否已正确部署。如果是这样,则基于其 JNDI 路径,您应该像这样执行 EJB 查找:@EJB(lookup="java:global/
/ ")。这是related issue。/ !
标签: java jakarta-ee deployment wildfly