我有一个 Java EE 服务器,它从项目 B 中的 Servlet 调用项目 A 中的 bean。两个项目都在同一个“单元”(集群)中。我也想通过负载均衡器。我不想使用消息驱动 Bean 或 Web 服务。
有没有其他方法可以做到这一点,如何实施?
我有一个 Java EE 服务器,它从项目 B 中的 Servlet 调用项目 A 中的 bean。两个项目都在同一个“单元”(集群)中。我也想通过负载均衡器。我不想使用消息驱动 Bean 或 Web 服务。
有没有其他方法可以做到这一点,如何实施?
实际上,经过一段时间后,我找到了解决方案:
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 内调用(而不是 out进程调用)。这称为进程亲和性。据我所知,没有办法避免或禁用进程关联。