我有一个Java EE服务器,它从项目B中的Servlet调用项目A中的bean。两个项目都在同一个“单元”(集群)中。我也想通过负载均衡器。我不想使用Message Driven Beans或Web Services。
还有其他方法可以做到这一点,怎么能实现呢?
答案 0 :(得分: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
答案 1 :(得分:0)
如果包含EJB的应用程序部署在与客户端相同的集群上,那么WebSphere将始终将请求路由到与客户端在同一应用程序服务器中的EJB,并且该调用将是一个in-VM调用(而不是进程外调用)。这称为进程关联。据我所知,没有办法避免或禁用进程关联。