1.定义业务接口
package cn.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**远程业务接口*/
public interface Business extends Remote{
public String echo(String message) throws RemoteException;
}
2.实现业务并配置
package cn.rmi;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class BusinessImpl implements Business{
public String echo(String message) throws RemoteException {
if("quit".equalsIgnoreCase(message)){
System.out.println("远程调用结束!!");
System.exit(0);
}
System.out.println("client :"+message);
return "remote server response:"+message;
}
public static void main(String[] args) throws RemoteException, AlreadyBoundException {
int port=9527;
Business business=new BusinessImpl();
UnicastRemoteObject.exportObject(business, port);
Registry registry=LocateRegistry.createRegistry(1099);
registry.bind("businessdemo", business);
}
}
3.客户端远程调用
package cn.rmi;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class RmiClient {
public static void main(String[] args) throws RemoteException, NotBoundException {
Registry registry=LocateRegistry.getRegistry("localhost");
Business business=(Business) registry.lookup("businessdemo");
String message=business.echo("hello!");
System.out.println(message);
}
}