【发布时间】:2014-09-19 08:20:06
【问题描述】:
我们很难找到从另一个容器注入 SessionBean 的正确方法。
假设我们有两个 ear-filesearA 和 earB 以及一个共享 jar:
耳朵
@Stateless
public class MyBean implements BeanInterface{...}
耳朵
@Stateless
public class OtherBean{
@Inject BeanInterface myBean;
}
apiJar
包含 BeanInterface 的 jarfile 存在于 earA 和 earB 中
我们不想通过@EJB 显式使用JNDI 名称,因为earB 将由外部客户实现和部署。
我们希望让 earB 通过 BeanInterface 注入 MyBean 尽可能简单(并且尽可能少地了解 earA)。
【问题讨论】:
-
您从哪里找到 CDI 可以跨 Ears 工作的信息?如果在 earB 中您将使用 @EJB,您将能够通过引用 earA 中的 bean 来映射它,而无需更改 earB 中的代码。
-
不确定我是否理解您的回复。你想让我使用@EJB注解然后指定实现类吗?然后我强迫我的外部客户了解我的实施细节......
-
没有。使用标准的
@EJB(name="ejb/BeanInterfaceRef") BeanInterface myBean;然后你可以将ejb/BeanInterfaceRef映射到earA中bean的JNDI,例如通过jboss.xml - docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/…