我有2个会话bean,OrderBean和InventoryBean,它们部署在不同的weblogic服务器上。
OrderBean需要访问InventoryBean以检查供应是否足够。
目前,我使用JNDI查找找到InventoryBean,它工作正常。
现在我想知道是否可以通过在xml或其他地方提供JNDI名称和URL来使用@EJB来注入InventoryBean。
答案 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+使您有可能:
Update tableA set field1 = @AAA
where fieldB = 12345
and fieldC = 'Ask'
,outbound-socket-binding
和security-realm
(均指远程JBoss实例)。remote-outbound-connection
添加到打包应用程序的META-INF文件夹中,并为应用程序所需的每个连接添加jboss-ejb-client.xml
。remoting-ejb-receiver
如果需要进一步的细节,请告诉我。
看看: