Java RMI Demo

yzmm
819 阅读
RmiTest.java
import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
public class RmiTest {
	public static void main(String[] args) {
		try {
			LocateRegistry.createRegistry(9527);//注册端口9527
			Naming.bind("rmi://localhost:9527/test", new RmiTestImpl());//绑定Remote对象
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (AlreadyBoundException e) {
			e.printStackTrace();
		}
	}
}
RmiTestImpl.java
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class RmiTestImpl extends UnicastRemoteObject implements RmiTestInterface {
	private static final long serialVersionUID = 1L;
	protected RmiTestImpl() throws RemoteException {
		super();
	}
	@Override
	public void test() throws RemoteException {
		System.out.println("Hello.RMI.");
	}
}
RmiTestInterface.java
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface RmiTestInterface extends Remote {
	public void test() throws RemoteException;
}
Test.java
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
public class Test {
	public static void main(String[] args) {
		try {
			RmiTestInterface rt = (RmiTestInterface) Naming.lookup("rmi://localhost:9527/test");//调用远程方法
			rt.test();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		}
	}
}

参考:http://lavasoft.blog.51cto.com/62575/91679

评论 (0)

发表评论