如何在Java中透過遠端方法傳送資料?


RMI 代表 **遠端方法呼叫**。它是一種機制,允許駐留在一個系統(JVM)中的物件訪問/呼叫在另一個 JVM 上執行的物件。

RMI 用於構建分散式應用程式;它提供 Java 程式之間的遠端通訊。它位於 **java.rmi** 包中。

要編寫一個 RMI Java 應用程式,您需要按照以下步驟操作:

步驟1 - 定義遠端介面

遠端介面提供了特定遠端物件的所有方法的描述。客戶端透過此遠端介面進行通訊。因此,您需要建立一個擴充套件預定義介面 java.rmi.Remote 的介面。

示例

import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Hello extends Remote {
   void printMsg() throws RemoteException;
}

步驟 2 - 開發實現類(遠端物件)

我們需要實現前面步驟中建立的遠端介面。(我們可以單獨編寫一個實現類,或者可以直接讓伺服器程式實現此介面。)因此,為遠端介面的所有抽象方法提供實現。

示例

public class ImplExample implements Hello {
   public void printMsg() {
      System.out.println("This is an example RMI program");
   }
}

步驟3 - 開發伺服器程式

RMI 伺服器程式應該實現遠端介面,或者擴充套件實現類。在這裡,我們應該建立一個遠端物件並將其繫結到 **RMIregistry**。因此,開發如下所示的伺服器程式:

示例

import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class Server extends ImplExample {
   public Server() {}
   public static void main(String args[]) {
      try {
         ImplExample obj = new ImplExample();
         Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
         Registry registry = LocateRegistry.getRegistry();
         registry.bind("Hello", stub);
         System.err.println("Server ready");
      } catch (Exception e) {
         System.err.println("Server exception: " + e.toString());
         e.printStackTrace();
      }
   }
}

步驟4 - 開發客戶端程式

在其中編寫一個客戶端程式,獲取遠端物件並使用此物件呼叫所需的方法。

示例

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
   private Client() {}
   public static void main(String[] args) {
      try {
         Registry registry = LocateRegistry.getRegistry(null);
         Hello stub = (Hello) registry.lookup("Hello");
         stub.printMsg();
      } catch (Exception e) {
         System.err.println("Client exception: " + e.toString());
         e.printStackTrace();
      }
   }
}

步驟5 - 編譯應用程式

要編譯應用程式:

  • 編譯遠端介面。

  • 編譯實現類。

  • 編譯伺服器程式。

  • 編譯客戶端程式。

步驟6 - 執行應用程式

  • 使用以下命令啟動 **rmi** 登錄檔。

Start rmiregistry

            這將在一個單獨的視窗中啟動 **rmi** 登錄檔。

  • 執行伺服器類檔案,如下所示:

  • 執行客戶端類檔案,如下所示:

  • **驗證** - 一旦您啟動客戶端,您將在伺服器中看到以下輸出。

更新於: 2019年10月14日

565 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.