首先Spring中整合了RMI:
http://blog.csdn.net/partner4java/article/details/7285055
然后,我们单独写个helloworld,分为几步
1、接口定义,需要实现Remote
2、实现
3、注册开启
4、调用
具体使用可查看jdk文档
package com.partner4java.demo.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* 首先定义一个接口<br/>
* 要实现Remote
*
* @author partner4java
*
*/
public interface Hello extends Remote {
public String sayHello(String name) throws RemoteException;
}
package com.partner4java.demo.rmi;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
/**
* 对外提供的服务<br/>
* 主要有三步:createRegistry、exportObject、bind
*
* @author partner4java
*
*/
public class HelloService implements Hello {
public String sayHello(String name) throws RemoteException {
System.out.println("hello" + name);
return "hello" + name;
}
public void start() throws RemoteException, AlreadyBoundException {
// 使用提供的特定端口导出远程对象,以便能够接收传入的调用。
Hello hello = (Hello) UnicastRemoteObject.exportObject(this, 9001);
// 返回本地主机在指定 port 上对远程对象 Registry 的引用。
Registry registry = LocateRegistry.createRegistry(9000);
registry.bind("Hello", hello);
}
public static void main(String[] args) throws RemoteException,
AlreadyBoundException {
new HelloService().start();
}
}
package com.partner4java.demo.rmi;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
/**
* 调用
*
* @author partner4java
*
*/
public class HelloClient {
public static void main(String[] args) throws RemoteException,
NotBoundException {
Registry registry = LocateRegistry.getRegistry("127.0.0.1", 9000);
Hello hello = (Hello) registry.lookup("Hello");
System.out.println(hello.sayHello(" world"));
}
}