RMI调用模板
来源:互联网 发布:迭代算法 编辑:程序博客网 时间:2024/05/20 22:04
1. 定义远程接口
// 远程接口继承自Remote
// 远程方法的传入参数和返回值必须是自然类型(int,float,boolean等)
// 或者实现了Serializable或Remote接口的对象。
public interface Time extends java.rmi.Remote {
// 远程方法必须抛出RemoteException:
public String getTime() throws RemoteException;
}
2. 定义实现类
// 注意:实现类继承自UnicastRemoteObject和自定义的远程接口Time:
public class TimeImpl extends java.rmi.server.UnicastRemoteObject implements Time {
// 注意:由于RemoteObject构造函数要抛出RemoteException,
// 因此务必定义构造函数并抛出RemoteException:
public TimeImpl() throws RemoteException { super(); }
// 这里是远程方法:
public String getTime() throws RemoteException {
return "12:04:27";
}
// 启动服务:
public static void main(String[] args) throws Exception {
// 可以手动启动RMI Registry,也可以在程序中启动:
java.rmi.registry.LocateRegistry.createRegistry(1099);
// 绑定名字服务,地址是本地计算机名或本机IP,默认端口是1099:
java.rmi.Naming.bind("//localhost:1099/servicename", new TimeImpl());
// 如果没有异常抛出,则绑定成功。
// 如果名字已经被绑定,可以用Naming.rebind()替换掉已绑定的服务。
}
}
3. 编译生成桩和框架
运行rmic TimeImpl,生成TimeImpl_Skel.class和TimeImpl_Stub.class。
4. 客户端
// 客户端文件包含客户端代码Client.class,远程接口Time.class,
// 由rmic生成的支持类TimeImpl_Skel.class和TimeImpl_Stub.class:
public static void main(String[] args) throws Exception {
// 客户端通过IP引用服务器端的远程对象,因此可以动态选择服务器。
// 如果不指定端口,默认端口号是1099:
Time time = (Time)java.rmi.Naming.lookup("//localhost:1099/servicename");
System.out.println(time.getTime());
}
- RMI调用模板
- rmi 调用
- RMI调用模版
- JAVA RMI调用
- RMI调用模版[转载]
- Java: RMI调用实例
- RMI,远程方法调用
- RMI远程调用实例
- RMI远程调用
- 远程调用 - spring+rmi
- RMI远程方法调用
- Java RMI调用实例
- Java rmi 远程调用
- RMI远程调用过程
- Spring调用RMI
- JAVA RMI 远程调用
- java--- RMI远程调用
- RMI远程调用
- ترفيهات إسلامية
- java复习题
- Generic Host Process for Win32 Services 错误
- 将Java应用程序本地编译为EXE的几种法
- JAVA程序员面试32问
- RMI调用模板
- C#中使用Monitor类、Lock和Mutex类来同步多线程的执行
- 为AD用户启用LCS
- 在linux中安装jdk及环境变量的配置
- MFC程序框架的剖析
- JSP中的数据库的连接
- JavaScript的alert()与Java的response.sendRedirect()经验思考
- 系统导航
- showModalDialog关闭子窗口刷新主窗口