RMI (远程方法)是 Java 平台中建立分布式计算的基础, 2 年前我刚开始接触 J2EE 时,怎么看书都是不得要领,最近这几天闲着没事又翻了翻以前没有看懂的书,突然之间顿 悟了。
一、 简单的 RMI 示例:
要快速入门,最简单的方法就是看简单的例子。下面是我写的一个简单的示例:
首先,定义一个接口 IServer ,代码如下:
IServer.java
1 package rmistudy;
2
3 import java.rmi.Remote;
4
5 public interface IServer extends Remote {
6 public void doSomeThing() throws java.rmi.RemoteException;
7 }
8
9
需要注意的是,这个接口从java.rmi.Remote接口扩展,并且这个接口中定义的方法都需 要抛出java.rmi.RemoteException异常。
接着,我们要根据这个接口来实现自己的服务器对象,所谓服务器对象,就是我们大脑中 想的远程对象,这个对象中定义的方法都是被别人来调用的。代码如下:
ServerImp.java
package rmistudy;
import java.rmi. * ;
import java.rmi.server. * ;
public class ServerImp extends UnicastRemoteObject implements IServer {
public ServerImp() throws RemoteException {
super ();
}
public void doSomeThing() throws RemoteException {
System.out.println( " 不带参数的远程函数doSomeThing()被调用,该 信息显示在服务器端。 " );
}
public static void main(String[] args) {
ServerImp server = null ;
try {
server = new ServerImp();
} catch (Exception e) {
System.out.println( " 创建远程对象失败: " );
System.out.println(e.getMessage());
System.exit( 0 );
}
try {
java.rmi.Naming.rebind( " //localhost/MyServer " , server);
System.out.println( " 远程对象绑定成功。 " );
} catch (Exception e) {
System.out.println( " 远程对象绑定失败: " );
System.out.println(e.getMessage());
System.exit( 0 );
}
}
}