Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để gửi dữ liệu qua phương pháp từ xa trong java?

RMI là viết tắt của Lời gọi phương thức từ xa . Nó là một cơ chế cho phép một đối tượng nằm trong một hệ thống (JVM) truy cập / gọi một đối tượng đang chạy trên một JVM khác.

RMI được sử dụng để xây dựng các ứng dụng phân tán; nó cung cấp giao tiếp từ xa giữa các chương trình Java. Nó được cung cấp trong gói java.rmi .

Để viết một ứng dụng Java RMI, bạn sẽ phải làm theo các bước dưới đây -

Bước1 - Xác định Giao diện Từ xa

Giao diện từ xa cung cấp mô tả tất cả các phương thức của một đối tượng từ xa cụ thể. Máy khách giao tiếp với giao diện từ xa này. Do đó, bạn cần tạo giao diện mở rộng giao diện được xác định trước, java.rmi. Điều khiển từ xa .

Ví dụ

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

Bước 2 - Phát triển lớp triển khai (Đối tượng từ xa)

Chúng ta cần triển khai giao diện từ xa đã tạo ở bước trước. (Chúng ta có thể viết một lớp triển khai riêng biệt hoặc chúng ta có thể trực tiếp làm cho chương trình máy chủ triển khai giao diện này.) Do đó, hãy cung cấp triển khai cho tất cả các phương thức trừu tượng của giao diện từ xa.

Ví dụ

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

Bước 3 - Phát triển chương trình máy chủ

Một chương trình máy chủ RMI nên triển khai giao diện từ xa hoặc mở rộng lớp triển khai. Tại đây, chúng ta nên tạo một đối tượng từ xa và liên kết nó với RMIregistry . Do đó, hãy phát triển một chương trình máy chủ như hình dưới đây -

Ví dụ

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();
      }
   }
}

Bước 4 - Phát triển Chương trình Khách hàng

Viết một chương trình khách trong đó, tìm nạp đối tượng từ xa và gọi phương thức bắt buộc bằng đối tượng này.

Ví dụ

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();
      }
   }
}

Bước 5 - Biên dịch ứng dụng

Để biên dịch ứng dụng -

  • Biên dịch giao diện Từ xa.

  • Biên dịch lớp triển khai.

  • Biên dịch chương trình máy chủ.

  • Biên dịch chương trình khách hàng.

Bước 6 - Thực thi ứng dụng

  • Bắt đầu rmi đăng ký bằng cách sử dụng lệnh sau.

Start rmiregistry

Điều này sẽ bắt đầu một rmi đăng ký trên một cửa sổ riêng biệt.

  • Chạy tệp lớp máy chủ như được hiển thị bên dưới -

Làm thế nào để gửi dữ liệu qua phương pháp từ xa trong java?

  • Chạy tệp lớp khách hàng như được hiển thị bên dưới -

Làm thế nào để gửi dữ liệu qua phương pháp từ xa trong java?

  • Xác minh - Ngay khi khởi động máy khách, bạn sẽ thấy kết quả sau trong máy chủ.

Làm thế nào để gửi dữ liệu qua phương pháp từ xa trong java?