我有一个Java EE服务器从项目B中的Servlet调用项目A中的bean。两个项目都在同一个“单元”(集群)中。我也想通过一个负载平衡器。我不想使用消息驱动Bean或Web服务。从项目B的servlet调用项目A的bean
是否有任何其他方式来做到这一点,以及如何实施?
我有一个Java EE服务器从项目B中的Servlet调用项目A中的bean。两个项目都在同一个“单元”(集群)中。我也想通过一个负载平衡器。我不想使用消息驱动Bean或Web服务。从项目B的servlet调用项目A的bean
是否有任何其他方式来做到这一点,以及如何实施?
其实一段时间后,我找到了解决办法:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming
.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL,"corbaloc::boris:9811,:natasha
:9812");
Context ctx = new InitialContext(env);
TestEJBHome home = (TestEJBHome)
PortableRemoteObject.narrow(ctx.lookup("ejb/ejbs/TestEJBHome"),
TestEJBHome.class);
TestEJB bean = home.create();
得到它从这里: http://www.ibm.com/developerworks/websphere/techjournal/0807_pape/0807_pape.html
如果包含EJB的应用程序与客户端部署在同一集群上,那么WebSphere将始终将请求路由到与客户端相同的应用程序服务器中的EJB,并且该调用将是一个VM内调用而不是进程外调用)。这被称为处理亲和力。据我所知,无法避免或禁用进程关联。
什么相同的细胞? – Olaf 2012-07-12 18:25:27
该单元(集群)中有两台服务器用于冗余,包含每个项目的副本以及负载平衡器在两者之间切换。因此,如果来自服务器1的项目A的呼叫,我想要根据可用性可能转到项目B服务器1或服务器2 – otc 2012-07-12 19:15:54
此外,项目目前还不相互依赖 – otc 2012-07-12 19:27:00