用RMI进行远程方法调用 - 编程入门网
;Error "+e);
}
}
}
通过代码可以看到,这个服务器首先创建了两个服务器对象。然后使用Naming.rebind()方法,将这个对象和一个名称联系(绑定)在一起。这个名称就是客户机查找服务器对象所使用的名称。Naming是java.rmi包中的类。这个类的作用是建立一套查找对象的命名机制。通过它就可以将绑定在特定名称上的对象找到。 4,编写客户端代码:
在这段代码中,首先定义了一个字符串url。这个字符串中存储了找到远程服务器对象的协议和地址信息。在rmi中,所使用的协议是rmi,端口号是1099。这个例子中,我的服务器对象存放在ip地址为91.1.1.119的主机上,所以,这个字符串的值为rmi://91.1.1.119:1099/。 接着,使用Naming.lookup()方法查找远程对象。参数就是服务器的位置信息和服务器对象所绑定的名称。 这里需要注意的是,通过lookup方法得到其实不是服务器对象本身的引用,而是下载到客户机上的客户桩。但是,这个方法得到的是Object类型,要使用这个对象,必须将它类型转换成服务器所实现的接口类型。 随后,就可以像调用本地方法一样调用远程方法。在这个例子中,远程方法是getDescription()。 因为这段代码是对远程对象进行操作,所以,它被放到一个try…catch块中,来捕获远程调用过程中的异常。 用RMI进行远程方法调用(3)时间:2010-12-18最后,就要将服务器和客户机部署到机器上。 1,将所有的类文件编译为class文件。然后在dos方式下使用 rmic ProductImpl 就可以生成客户桩,名为ProductImpl_Stub.class。 2,把客户端代码和接口代码拷贝到客户机器上。 3,运行rmiregistry程序,启动注册系统,使得服务器可以注册在机器上,以供客户调用。 4,启动http服务。将接口类和客户桩类放在http服务器上,使得客户可以下载。假设这两个文件的下载目录是http://91.1.1.119/download/ 5,使用start java -Djava.rmi.server.codebase= http://91.1.1.119/download/ ProductServer 运行创建服务器对象的程序。 其中的-Djava.rmi.server.codebase= http://91.1.1.119/download/ 指明客户程序下载客户桩的地址。 6,因为rmi有安全限制,所以在客户端必须建立一个策略文件。假设名为client.policy 文件的内容为
使用 start java -Djava.security.policy=client.policy ProductClient 启动客户端,客户端就可以连接80端口(http端口)和1024-65535的端口(其中包含了rmi的缺省端口109 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |