我有2个会话Bean,OrderBean和InventoryBean它们在不同的WebLogic服务器上部署。
该OrderBean需要访问InventoryBean来检查供应充足。
目前,我使用JNDI查找来定位InventoryBean并能正常工作。
现在,我想知道是否可以使用@EJB通过提供JNDI名称和XML或其他地方的URL注入InventoryBean。
我有2个会话Bean,OrderBean和InventoryBean它们在不同的WebLogic服务器上部署。
该OrderBean需要访问InventoryBean来检查供应充足。
目前,我使用JNDI查找来定位InventoryBean并能正常工作。
现在,我想知道是否可以使用@EJB通过提供JNDI名称和XML或其他地方的URL注入InventoryBean。
最后,我找到了一种方法来做到这一点。
一世。 配置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;
我认为这是不可能通过EJB的注解,但您可以配置外部JNDI WebLogic服务器上,并请参阅您的远程EJB作为本地JNDI名称。 虽然,我从来没有尝试过,但我认为它应该工作。
这是很不具体。
JBoss的7+使得有可能,如果你:
outbound-socket-binding
, security-realm
和remote-outbound-connection
在独立的文件(全部指的是远程JBoss实例)。 jboss-ejb-client.xml
到你的打包应用程序的META-INF文件夹,用remoting-ejb-receiver
的应用程序所需的每一个连接。 @EJB(lookup = "<jndi_name>")
让我知道,如果需要进一步的细节。
给看看: