程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 如何調用部署在其他服務器上的EJB?

如何調用部署在其他服務器上的EJB?

編輯:關於JAVA

前段日子有網友問如何調用不在一個應用服務器上的EJB的問題,自己試驗了一下,下面舉個例子把這個問題說清楚:

假設我們寫了一個Session Bean,實現了一些業務方法,部署到了A服務器的sunone application server上,然後我們又寫了一個JSP,並將其部署到了B服務器上的sunone application server中,該JSP將調用A服務器上那個session bean的一些業務方法,這其中需要注意兩點:

1、在使用JNDI lookup A服務器上的那個session bean的時候,需要如下配置環境變量:

Properties env = new PropertIEs();

env.put("Java.naming.factory.initial",

"com.sun.jndi.cosnaming.CNCtxFactory");

env.put("Java.naming.provider.url", "iiop://192.168.0.2:3700");

其中192.168.0.2就是A服務器的IP地址,當然也可以寫A服務器的主機名

當然,有些文章或書上可能是這種寫法,也是可以的:

Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");

env.put(Context.PROVIDER_URL, "iiop://192.168.0.2:3700");

2、眾所周知,遠程調用需要在調用端有被調用類的stub類,對應到J2EE應用中,也就是ejb的clIEnt類,一般來說,這個類都是在部署我們的J2EE應用時自動生成的,所以需要將包含這個類的jar包放到WEB-INF/lib目錄下(如果是使用一個web app來作為客戶端調用EJB)以便應用服務器能找到這些stub類並正確還原出調用對象來

明確了以上兩點後,基本上就沒有問題了,有興趣的朋友可以自己試驗一下

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved