簡體   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