首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 2 RMI 入門教學:遠端方法呼叫完整實作流程

     編輯:Java 程式設計入門

RMI 簡介

自 Java 1.1 起,RMI 讓不同 JVM (含不同主機) 上的 Java 應用互相呼叫:一個 JVM 可呼叫另一 JVM 上遠端物件的方法。RMI 是 EJB、Jini 等進階技術基礎。Java 2 加強安全性、動態代碼下載等。本文以最簡單範例說明核心原理,強調實際開發與運行環境結合。

1. 遠端介面與物件、Stub/Skeleton 產生

建立 f:\server 目錄放置原始碼。

遠端介面:Hello.java

package jdeveloper.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Hello extends Remote {
    String sayHello() throws RemoteException;
}

遠端物件實作:HelloImpl.java

package jdeveloper.rmi;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;

public class HelloImpl extends UnicastRemoteObject implements Hello {
    public HelloImpl() throws RemoteException { super(); }
    public String sayHello() { return "Hello World!"; }

    public static void main(String args[]) {
        if (System.getSecurityManager() == null)
            System.setSecurityManager(new RMISecurityManager());
        try {
            Hello obj = new HelloImpl();
            Naming.rebind("HelloServer", obj);
            System.out.println("HelloServer bound in registry");
        } catch (Exception e) {
            System.out.println("HelloImpl err: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

編譯與產生 Stub/Skeleton

cd f:\server
javac -d . Hello.java
javac -d . HelloImpl.java
rmic -d . jdeveloper.rmi.HelloImpl
jar cvf hello.jar jdeveloper/rmi/Hello.class  // 分發給 Client 端

Stub 部署

Stub 為動態下載。可放於 HTTP 伺服器目錄 (如 https://hjc/rmi) 或單機測試本地目錄 (f:\server\classes)。文中將對兩種方式給出 policy 與 bat 檔運行步驟。

2. Client 端程式實作

HelloClient.java (原文未完整,此處結束)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved