日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java8的rmi_Java中的RMI

發(fā)布時間:2024/4/11 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java8的rmi_Java中的RMI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

個人理解:

RMI就是RMI 是不是就是向客戶端隱藏了實現類。

但是客戶端要有與server端同樣的接口。

接口:

/**

* Created by IntelliJ IDEA.

* User: leizhimin

* Date: 2008-8-7 21:50:02

* 定義一個遠程接口,必須繼承Remote接口,其中需要遠程調用的方法必須拋出RemoteException異常

*/

public interface IHello extends Remote {

/**

* 簡單的返回“Hello World!"字樣

* @return 返回“Hello World!"字樣

* @throws java.rmi.RemoteException

*/

public String helloWorld() throws RemoteException;

/**

* 一個簡單的業(yè)務方法,根據傳入的人名返回相應的問候語

* @param someBodyName? 人名

* @return 返回相應的問候語

* @throws java.rmi.RemoteException

*/

public String sayHelloToSomeBody(String someBodyName) throws RemoteException;

}

客戶端、服務器端都要有。

實現類:

/**

* Created by IntelliJ IDEA.

* User: leizhimin

* Date: 2008-8-7 21:56:47

* 遠程的接口的實現

*/

public class HelloImpl extends UnicastRemoteObject implements IHello {

/**

* 因為UnicastRemoteObject的構造方法拋出了RemoteException異常,因此這里默認的構造方法必須寫,必須聲明拋出RemoteException異常

*

* @throws RemoteException

*/

public HelloImpl() throws RemoteException {

}

/**

* 簡單的返回“Hello World!"字樣

*

* @return 返回“Hello World!"字樣

* @throws java.rmi.RemoteException

*/

public String helloWorld() throws RemoteException {

return "Hello World!";

}

/**

* 一個簡單的業(yè)務方法,根據傳入的人名返回相應的問候語

*

* @param someBodyName 人名

* @return 返回相應的問候語

* @throws java.rmi.RemoteException

*/

public String sayHelloToSomeBody(String someBodyName) throws RemoteException {

return "你好," + someBodyName + "!";

}

}

只要在服務器端有。

服務器的服務程序:

/**

* Created by IntelliJ IDEA.

* User: leizhimin

* Date: 2008-8-7 22:03:35

* 創(chuàng)建RMI注冊表,啟動RMI服務,并將遠程對象注冊到RMI注冊表中。

*/

public class HelloServer {

public static void main(String args[]) {

try {

//創(chuàng)建一個遠程對象

IHello rhello = new HelloImpl();

//本地主機上的遠程對象注冊表Registry的實例,并指定端口為8888,這一步必不可少(Java默認端口是1099),必不可缺的一步,缺少注冊表創(chuàng)建,則無法綁定對象到遠程注冊表上

LocateRegistry.createRegistry(8888);

//把遠程對象注冊到RMI注冊服務器上,并命名為RHello

//綁定的URL標準格式為:rmi://host:port/name(其中協議名可以省略,下面兩種寫法都是正確的)

Naming.bind("rmi://localhost:8888/RHello",rhello);

//??????????? Naming.bind("//localhost:8888/RHello",rhello);

System.out.println(">>>>>INFO:遠程IHello對象綁定成功!");

} catch (RemoteException e) {

System.out.println("創(chuàng)建遠程對象發(fā)生異常!");

e.printStackTrace();

} catch (AlreadyBoundException e) {

System.out.println("發(fā)生重復綁定對象異常!");

e.printStackTrace();

} catch (MalformedURLException e) {

System.out.println("發(fā)生URL畸形異常!");

e.printStackTrace();

}

}

}

綁定服務端口。

客戶端使用類:

/**

* Created by IntelliJ IDEA.

* User: leizhimin

* Date: 2008-8-7 22:03:35

* 創(chuàng)建RMI注冊表,啟動RMI服務,并將遠程對象注冊到RMI注冊表中。

*/

public class HelloServer {

public static void main(String args[]) {

try {

//創(chuàng)建一個遠程對象

IHello rhello = new HelloImpl();

//本地主機上的遠程對象注冊表Registry的實例,并指定端口為8888,這一步必不可少(Java默認端口是1099),必不可缺的一步,缺少注冊表創(chuàng)建,則無法綁定對象到遠程注冊表上

LocateRegistry.createRegistry(8888);

//把遠程對象注冊到RMI注冊服務器上,并命名為RHello

//綁定的URL標準格式為:rmi://host:port/name(其中協議名可以省略,下面兩種寫法都是正確的)

Naming.bind("rmi://localhost:8888/RHello",rhello);

//??????????? Naming.bind("//localhost:8888/RHello",rhello);

System.out.println(">>>>>INFO:遠程IHello對象綁定成功!");

} catch (RemoteException e) {

System.out.println("創(chuàng)建遠程對象發(fā)生異常!");

e.printStackTrace();

} catch (AlreadyBoundException e) {

System.out.println("發(fā)生重復綁定對象異常!");

e.printStackTrace();

} catch (MalformedURLException e) {

System.out.println("發(fā)生URL畸形異常!");

e.printStackTrace();

}

}

}

指定服務器與指定端口。

感謝leizhimin。

總結

以上是生活随笔為你收集整理的java8的rmi_Java中的RMI的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。