java - EJB,两个应用程序服务器之间的远程处理(glassfish)

标签 java glassfish ejb application-server


我想要一颗 bean Foo在主机A这是由 @EJB 注入(inject)的bean 的注解 Bar在主机B .
这两个主机都是 Glassfish-v3 的单独独立实例.
在阅读 Glassfish 时docs 我找到了很多信息,其中一些听起来有点矛盾。
我知道每个 bean 都有一个分配给它的全局 jndi,并了解它是如何构建的,What is the syntax for portable global JNDI names? .我也明白 Foo 的声明在 Bar应该是这样的(假设FooRemoteFoo的远程业务接口(interface),fooejb是它的模块):@EJB(lookup=java:global/fooejb/FooRemote) FooRemote foo , 这是基于 this .
看不懂的是哪里跟楼主说的A和主机B了解彼此。
我看到了很多关于应用程序客户端和应用程序服务器的示例,但我无法找到此类场景的示例。
this question一个sun-web.xmlGlobal-JNDI提到了,但我认为它不是 EJB3.1(因为它不是 Portable JNDI )而且我不明白这个 sun-web.xml 在哪里应该驻留(如果可以的话,我想避免它)。
主要有两点不同:

  1. 没有 -Dorg.omg.CORBA.ORBInitialHost= 参数选项(据我所知)
  2. 任何解决方案当然应该允许包含第三个主机 C这两个 AB出于不同的目的进行交流。

我有一种强烈的感觉,我在这里遗漏了一些基本的东西,我真的很感激能指出我所遗漏的东西。
顺便说一句,我想尽可能避免使用描述 rune 件等,并在注释中留下大部分信息,并且只在服务器中配置主机 ip。

编辑:
我认为这个问题的另一个有趣的方面是如何在这方面使用负载平衡,即假设我有 A1A2相同的服务器,关于路由来自 B 的请求,负载平衡将如何发生?到 A1A2

编辑2:
我认为这可能与 ejb 3.1 无关,但与如何使两个应用程序服务器能够查看彼此的 jndi 注册表的基础有关。我认为这与 ejb 3.1 无关,因为 3.0 中似乎存在类似的问题 Global不可移植的jndi。
我想每个应用程序服务器中的一些配置将允许我配置它应该查询 jndi 远程 bean 的其他“邻居”。
希望能给外面的人一个线索。

谢谢,
一泰

最佳答案

关于 EJB 负载平衡,您可能想看看这个博客:

http://www.techpost.info/2010/12/ejb-load-balancer_7304.html

关于java - EJB,两个应用程序服务器之间的远程处理(glassfish),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370559/

相关文章:

java - “===” 等效于 Java

java.lang.NoClassDefFoundError : javax/ejb/EJBObject 错误

java - 如何在 EJB 项目中创建 session ?

java - 如何为 JTable 中的一列添加不同的单元格编辑器?

java - 如何在 J2EE Web 应用程序中创建类似 "http://username.example.com"的域?

java - 使用 gson 将 Java 对象转换为 JSON 字符串

java - CDI @inject 空指针

java - 使用 JSF 暂时抑制 beanvalidation

java - 使用 Qualifier 和 InjectionPoint 作为 @HttpParam 在 CDI/WELD 中实现 @RequestParam

java - 尝试连接到 MYSQL 数据库时出现 EJBTransactionRolledbackException