繁体   English   中英

CDI跨容器注入

[英]CDI Cross container injection

我们很难找到从另一个容器中注入SessionBean的正确方法。

假设我们有两个耳文件earA和earB,以及一个共享的jar:

EARA

@Stateless
public class MyBean implements BeanInterface{...}

EARB

@Stateless
public class OtherBean{
   @Inject BeanInterface myBean;
}

apiJar

earA和earB中都存在一个包含BeanInterface的jarfile

我们不想通过@EJB显式使用JNDI名称,因为earB将由外部客户实现和部署。

我们想让earB通过BeanInterface注入MyBean尽可能容易(并且对earA的了解最少)。

CDI无法在EAR中使用。

您可以在EAR B中使用@EJB(lookup=...)来获取对在EAR A中实现的EJB的引用。

在这种情况下,您不需要知道EAR A中的实现类,只需知道其JNDI名称。 您可能还应该使EAR A中的EJB公开远程接口。

如果将两个EAR部署在不同的服务器实例上,则还需要一些特定于供应商的配置才能执行远程JNDI查找。

您也可以隐藏此@EJB(lookup=...)并通过执行以下描述的操作使用CDI注入EJB: http : //whoopdicity.blogspot.ro/2014/07/developing-dynamic-jee-service-client。 HTML

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM