2012-07-12 38 views
0

我有一个Java EE服务器从项目B中的Servlet调用项目A中的bean。两个项目都在同一个“单元”(集群)中。我也想通过一个负载平衡器。我不想使用消息驱动Bean或Web服务。从项目B的servlet调用项目A的bean

是否有任何其他方式来做到这一点,以及如何实施?

+1

什么相同的细胞? – Olaf 2012-07-12 18:25:27

+0

该单元(集群)中有两台服务器用于冗余,包含每个项目的副本以及负载平衡器在两者之​​间切换。因此,如果来自服务器1的项目A的呼叫,我想要根据可用性可能转到项目B服务器1或服务器2 – otc 2012-07-12 19:15:54

+0

此外,项目目前还不相互依赖 – otc 2012-07-12 19:27:00

回答

1

其实一段时间后,我找到了解决办法:

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

0

如果包含EJB的应用程序与客户端部署在同一集群上,那么WebSphere将始终将请求路由到与客户端相同的应用程序服务器中的EJB,并且该调用将是一个VM内调用而不是进程外调用)。这被称为处理亲和力。据我所知,无法避免或禁用进程关联。

相关问题