是否有可能使用@EJB批注通过不同的服务器来注入的EJB?(Is it possible to us

2019-08-17 23:21发布

我有2个会话Bean,OrderBean和InventoryBean它们在不同的WebLogic服务器上部署。

该OrderBean需要访问InventoryBean来检查供应充足。

目前,我使用JNDI查找来定位InventoryBean并能正常工作。

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

Answer 1:

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

一世。 配置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;


Answer 2:

我认为这是不可能通过EJB的注解,但您可以配置外部JNDI WebLogic服务器上,并请参阅您的远程EJB作为本地JNDI名称。 虽然,我从来没有尝试过,但我认为它应该工作。



Answer 3:

这是很不具体。

JBoss的7+使得有可能,如果你:

  1. 定义outbound-socket-bindingsecurity-realmremote-outbound-connection在独立的文件(全部指的是远程JBoss实例)。
  2. 一个添加jboss-ejb-client.xml到你的打包应用程序的META-INF文件夹,用remoting-ejb-receiver的应用程序所需的每一个连接。
  3. 与注入远程EJB @EJB(lookup = "<jndi_name>")

让我知道,如果需要进一步的细节。

给看看:

  • 远程连接的JBoss配置
  • 关于与GlassFish Glassfish的远程连接的文章


文章来源: Is it possible to use @EJB annotation to inject EJBs through different servers?
标签: java ejb-3.0