2012-07-12 69 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內調用而不是進程外調用)。這被稱爲處理親和力。據我所知,無法避免或禁用進程關聯。

相關問題