本文主要是介绍RMI 远程访问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
RMI远程访问
看Head First 设计模式时讲到RMI,感觉书上整个流程不是很好懂。自己整理下代码。
代码结构:
RMI |MyRemote.java |server| MyRemoteImpl.java |client| MyRemoteClient.java
公共接口
感觉stub 和 skeleton就是服务器和客户机的公共访问
import java.rmi.*;
public interface MyRemote extends Remote{public String sayHello() throws RemoteException;
}
编译生成的class文件要分别拷贝到 server, client 文件, 服务器类和客户机类javac 要依赖该class文件。
服务器
import java.rmi.*;
import java.rmi.server.*;public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{public String sayHello(){return "Server says, 'Hey'";}public MyRemoteImpl() throws RemoteException{}public static void main(String []args){try{MyRemote service = new MyRemoteImpl();Naming.rebind("RemoteHello", service);}catch(Exception ex){ex.printStackTrace(); }}
}
* 服务器运行前要先执行rmiregistry*
客户端
import java.rmi.*;public class MyRemoteClient{public static void main(String []args){new MyRemoteClient().go();}public void go(){try{MyRemote service = (MyRemote)Naming.lookup("rmi://127.0.0.1/RemoteHello");String s = service.sayHello();System.out.println(s);}catch(Exception ex){ex.printStackTrace();}}
}
运行结果
- 未启动服务器会有异
- 注册
- 服务器
- 客户端
这篇关于RMI 远程访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!