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

时间:2009-10-13 13:39:56

标签: java ejb-3.0

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

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

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

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

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:3)

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

答案 2 :(得分:0)

这是非常具体的。

JBoss 7+使您有可能:

  1. 在独立文件中定义Update tableA set field1 = @AAA where fieldB = 12345 and fieldC = 'Ask' outbound-socket-bindingsecurity-realm(均指远程JBoss实例)。
  2. remote-outbound-connection添加到打包应用程序的META-INF文件夹中,并为应用程序所需的每个连接添加jboss-ejb-client.xml
  3. 使用remoting-ejb-receiver
  4. 注入远程EJB

    如果需要进一步的细节,请告诉我。

    看看: