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