java語言

當前位置 /首頁/計算機/java語言/列表

Java遠端方法呼叫RMI

rmi的服務端,必須要使用介面,同時還有介面的實現類!所以下面的兩個檔案是介面類和介面的實現類!下面一起學習一下吧!

Java遠端方法呼叫RMI

UserDao 介面:

/**

* 遠端介面 必須繼承與Remote物件

* @author spring sky

* date: 20xx年2月7日 10:55:05

*

* QQ:xxxxxx

*/

public interface UserDao extends Remote{

/**

* 簡單的測試方法

* @param name

*/

public void sayName(String name) throws RemoteException;

}

UserDaoImpl實現類

/**

*

* 介面的實現類 必須繼承UnicastRemoteObject(單一遠端物件) 實現UserDao自己的介面

* @author spring sky

* date: 2xxx年2月7日 10:56:05

*

* QQ:xxxxxx

*/

public class UserDaoImpl extends UnicastRemoteObject implements UserDao {

public UserDaoImpl() throws RemoteException {

}

@Override

public void sayName(String name) {

if(name!=null&&!ls(""))

{

tln("我的名字是:"+name);

}else{

tln("名字不為空....");

}

}

}

對外的提供一個服務,服務中已經共享了url給外界訪問

/**

* 使用main方法啟動一個服務,用於外界環境訪問

* @author spring sky

* date:2xxx年2月7日 10:57:37

*

* QQ:xxxxx

*/

public class StartService {

private static final String IP = "";

private static final int PORT = 9999;

private static final String REMOTE_NAME = "userDao";

private static final String REMOTE_URL = "rmi://"+IP+":"+PORT+"/"+REMOTE_NAME;

public static void main(String[] args) {

try {

UserDao userDao = new UserDaoImpl(); //例項化物件

teRegistry(PORT); //註冊埠

(REMOTE_URL, userDao); //繫結遠端服務物件

tln("遠端"+REMOTE_NAME+"啟動成功....");

} catch (RemoteException e) {

tln("遠端物件出錯");

tStackTrace();

} catch (MalformedURLException e) {

tln("URL出錯了");

tStackTrace();

} catch (AlreadyBoundException e) {

tln("繫結的物件已經存在了");

tStackTrace();

}

}

}

上面是服務端的程式碼,如果啟動沒有任何問題,就可以做客戶端訪問了,其實客戶端的訪問更加的簡單,只需要遠端的介面類和查詢rmi中的'url就可以了!

  程式碼如下:

/**

* 遠端方法呼叫測試

* @author spring sky

* date:2xxx年2月7日 11:12:46

*

* QQ:xxxxx

* name:石明政

*/

public class TestRemote {

public static void main(String[] args) {

try {

//在rmi服務中查詢userdao的物件

UserDao userDao = (UserDao) up("rmi://");

//呼叫遠端服務的方法

ame("spring sky");

} catch (MalformedURLException e) {

tln("URL出錯");

tStackTrace();

} catch (RemoteException e) {

tln("遠端物件出錯");

tStackTrace();

} catch (NotBoundException e) {

tln("沒有找到繫結的物件");

tStackTrace();

}

}

}

以上就是所有的rmi遠端呼叫程式碼了!執行結果如下:

好了,本人也只是簡單的瞭解了rmi,如果以後有專案做rmi就可以深入了! 呵呵 ,在這裡我突然感覺,想web service也應該和他一樣的原理的把!

TAG標籤:呼叫 RMI JAVA 遠端 #