是否可以使用@EJB注释通过不同的服务器注入EJB?

Eri*_*ric 8 java ejb-3.0

我有2个会话bean,OrderBean和InventoryBean,它们部署在不同的weblogic服务器上.

OrderBean需要访问InventoryBean以检查供应是否足够.

目前,我使用JNDI查找找到InventoryBean,它工作正常.

现在我想知道是否可以使用@EJB通过在xml或其他地方提供JNDI名称和URL来注入InventoryBean.

Eri*_*ric 8

最后我找到了一种方法来做到这一点.

一世.在weblogic服务器上配置外部JNDI,并将远程EJB链接到本地​​JNDI名称.

例如:

Local JNDI:
InventoryBean#com.pkg.InventoryBean (MAPPEDNAME#FULLNAME)
link to
Remote JNDI:
ServiceBean#com.pkg.InventoryBean 

II.在ejb-jar.xml中配置ejb-ref

ejb-ref-name -> ejb/InventoryBean
remote -> com.pkg.InventoryService
mapped-name -> InventoryBean

III.在OrderBean中添加@EJB注释

@EJB(name = "ejb/InventoryBean")
private InventoryService inventoryService;


And*_*ich 3

我认为通过EJB注释是不可能的,但是您可以在WebLogic服务器上配置外部JNDI并将您的远程EJB引用为本地JNDI名称。虽然我从未尝试过,但我认为它应该有效。