Java RMI Demo
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