java

位置:IT落伍者 >> java >> 浏览文章

JAVA RMI远程方法调用简单实例


发布日期:2021年09月24日
 
JAVA RMI远程方法调用简单实例

RMI的概念

RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制使用这种机制某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据RMI是Enterprise JavaBeans的支柱是建立分布式Java应用程序的方便途径在过去TCP/IP套接字通讯是远程通讯的主要手段但此开发方式没有使用面向对象的方式实现开发在开发一个如此的通讯机制时往往令程序员感觉到乏味对此RPC(Remote Procedure Call)应运而生它使程序员更容易地调用远程程序但在面对复杂的信息传讯时RPC依然未能很好的支持而且RPC未能做到面向对象调用的开发模式针对RPC服务遗留的问题RMI出现在世人面前它被设计成一种面向对象的通讯方式允许程序员使用远程对象来实现通信并且支持多线程的服务这是一次远程通讯的革命为远程通信开辟新的里程碑

RMI的开发步骤

先创建远程接口及声明远程方法注意这是实现双方通讯的接口需要继承Remote

开发一个类来实现远程接口及远程方法值得注意的是实现类需要继承UnicastRemoteObject

通过javac命令编译文件通过java server 命令注册服务启动远程对象

最后客户端查找远程对象并调用远程方法

简单实例

首先为服务建立一个Model层注意因为此对象需要现实进行远程传输所以必须继承Serializable

创建远程接口PersonService注意远程接口需要继承Remote

建立PersonServiceImpl实现远程接口注意此为远程对象实现类需要继承UnicastRemoteObject

建立服务器端在服务器端注册RMI通讯端口与通讯路径然后通讯javac命令编译文件通过java server 命令注册服务以下面代码为例如果阁下将项目建立于D:\\RMI\RemotingService文件夹上时则先输入D:\\RMI\RemotingService\src>javac rmi/remotingservice/Programjava获取Programclass(如何阁下使用的MyEclipse等开发工具可跳过此步直接在*/bin文件夹中直接调用已经生成的Programclass)然后输入D:\\RMI\RemotingService\src>java rmi/remotingservice/Program启动服务

最后建立客户端进行测试注意客户调用的RMI路径必须服务器配置一致

常见错误

在命令提示符调用java命令时显示并无此命令这是因为未在环境变量中绑定JAVA的JDK命令造成的你首先单击计算机右键>属性>高级>环境变量在系统变量Path设置中加载为JDK的路径 ;D:\Program Files\Genuitec\Common\binary\comsunjavajdkwinx_\bin然后在ClassPath加载服务器端的Programclass地址 ;D:\\RMI\RemotingService\bin

在调用javac命令时出现javac 找不到文件 …… 此错误可能是因为阁下输入的文件路径出现错误造成注意不要把D:\\RMI\RemotingService\src>javac rmi/remotingservice/Programjava写错为D:\\RMI\RemotingService\src>javac rmiremotingserviceProgramjava

在调用D:\\RMI\RemotingService\bin>java rmi/remotingservice/Program命令时出现Exception in thread main javalangNoClassEdfoundError错误第一这可能是阁下把Program错写为Programclass注意java命令不需要加后缀名第二可能是阁下把java rmi/remotingservice/Program错写为java rmi\remotingservice\Program

上一篇:Java Mail 深入浅出(1)

下一篇:javadoc生成注释(2)