天天看點

Java RMI協定開發

Java RMI協定開發

在Java的開發中,Web端隻是以個較小的亮點,抛開HTTP協定,Java世界裡還有很多比較牛×的技術,但做為J2EE的核心技術,RMI協定就顯得由為重要,RMI對搞過EJB的人來說應該不陌生,但EJB是在RMI和CORBA的基礎之上進行了封裝(也就是RMI//IIOP),程式員往往不用接觸底層.做為Java工程師,對J2EE最核心的技術-----EJB的心髒 RMI自然是要非常熟悉.

RMI的程式設計模型是采用架構和樁的模式,基本原理如下:

客戶請求------>(rmi協定)---------->遠端架構(注冊機)------------>遠端對象----------(處理)--------->結果傳回到架構--------->客戶

1. 伺服器端建立遠端接口和實作遠端接口的類

2. 通過RMIC指令(%java_home%/bin/rmic.exe)來編譯遠端接口實作類進而生成 stub等檔案.

3. 運作 rmiregistry指令(%java_home%/bin/rmiregistry.exe) 來啟動RMI遠端注冊機

4. 向RMI注冊機注冊遠端對象供用戶端調用

下面來個實實在在的例子,大家回去根據效果自己領悟,寫理論我不在行

1. 首先 建立以個遠端接口 Mclaren.java

package com.skylink.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Mclaren extends Remote{
public String sayHello(String username) throws RemoteException;
}
           

2.建立以個遠端接口實作類,來做為RMI服務提供方 MclarenServer.java

package com.skylink.rmi;

import java.rmi.RemoteException;
import java.rmi.Naming;
import java.rmi.server.UnicastRemoteObject;

pulic class MclarenServer extends UnicastRemoteObject {
public MclarenServer() throws RemoteException {
super();
}
public void registry(String name){
try{
System.setSecurityManager(new RMISecurityManager());
Naming.rebind(name,this);
}catch(Exception e)[
e.printStackTrace();
}
}
public String sayHello(String username){
return "輸出為 : "+username;
}
}
           

3 建立用來啟動伺服器的類 StartServer.java

package com.skylink.rmi;
public class StartServer{
public static void main(String[] args){
try{
System.setSecurityManager(new RMISecurityManager());
new MclarenServer().registry("//192.168.0.192:1099/Mclaren");
System.out.println("服務已經注冊..");
}catch(Exception e){
e.printStackTrace();
}
}
}
           

本文轉自:http://www.cnblogs.com/dkblog/archive/2008/03/27/1980820.html