我有一個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