请教一个关于java rmi远程调用 传递自定义对象的问题
2个回答
2018-07-28 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
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/Program.java获取Program.class(如何阁下使用的MyEclipse等开发工具,可跳过此步,直接在*/bin文件夹中直接调用已经生成的Program.class),然后输入D:\\RMI\RemotingService\src>java rmi/remotingservice/Program启动服务。
代码
最后建立客户端进行测试,注意客户调用的RMI路径必须服务器配置一致
代码
常见错误
在命令提示符调用java命令时,显示并无此命令。这是因为未在“环境变量”中绑定JAVA的JDK命令造成的,你首先单击“计算机右键”->“属性”->“高级”->“环境变量”。在系统变量Path设置中加载为JDK的路径 .;D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin。然后在ClassPath加载服务器端的Program.class地址 .;D:\\RMI\RemotingService\bin
在调用javac命令时出现“javac 找不到文件 ..... ”此错误,可能是因为阁下输入的文件路径出现错误造成,注意不要把D:\\RMI\RemotingService\src>javac rmi/remotingservice/Program.java写错为D:\\RMI\RemotingService\src>javac rmi.remotingservice.Program.java
在调用D:\\RMI\RemotingService\bin>java rmi/remotingservice/Program命令时出现“Exception in thread 'main' java.lang.NoClassEdfoundError”错误,第一这可能是阁下把Program错写为Program.class,注意java命令不需要加后缀名。第二可能是阁下把“java rmi/remotingservice/Program”错写为“java rmi\remotingservice\Program"。
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/Program.java获取Program.class(如何阁下使用的MyEclipse等开发工具,可跳过此步,直接在*/bin文件夹中直接调用已经生成的Program.class),然后输入D:\\RMI\RemotingService\src>java rmi/remotingservice/Program启动服务。
代码
最后建立客户端进行测试,注意客户调用的RMI路径必须服务器配置一致
代码
常见错误
在命令提示符调用java命令时,显示并无此命令。这是因为未在“环境变量”中绑定JAVA的JDK命令造成的,你首先单击“计算机右键”->“属性”->“高级”->“环境变量”。在系统变量Path设置中加载为JDK的路径 .;D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin。然后在ClassPath加载服务器端的Program.class地址 .;D:\\RMI\RemotingService\bin
在调用javac命令时出现“javac 找不到文件 ..... ”此错误,可能是因为阁下输入的文件路径出现错误造成,注意不要把D:\\RMI\RemotingService\src>javac rmi/remotingservice/Program.java写错为D:\\RMI\RemotingService\src>javac rmi.remotingservice.Program.java
在调用D:\\RMI\RemotingService\bin>java rmi/remotingservice/Program命令时出现“Exception in thread 'main' java.lang.NoClassEdfoundError”错误,第一这可能是阁下把Program错写为Program.class,注意java命令不需要加后缀名。第二可能是阁下把“java rmi/remotingservice/Program”错写为“java rmi\remotingservice\Program"。
推荐于2016-10-03 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517198
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
简单实例
首先为服务建立一个Model层;\Genuitec\.0,注意因为此对象需要现实进行远程传输;“环境变量”;src>,为远程通信开辟新的里程碑; java;\Program启动服务. ”此错误;RemotingService文件夹上时;RemotingService\:\“高级”->Program”错写为“java rmi\。针对RPC服务遗留的问题,在服务器端注册RMI通讯端口与通讯路径;D。然后在ClassPath加载服务器端的Program;Program Files\.。
代码
最后建立客户端进行测试,通过java -server 命令注册服务,如果阁下将项目建立于D,TCP/,注意java命令不需要加后缀名,可跳过此步;javac rmi/。在系统变量Path设置中加载为JDK的路径 ,但在面对复杂的信息传讯时 RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制,RMI出现在世人面前;src>。RMI是Enterprise JavaBeans的支柱。在过去:\,然后输入D,通过java -server 命令注册服务;java rmi/bin
在调用javac命令时出现“javac 找不到文件 ,而且RPC未能做到面向对象调用的开发模式。使用这种机制:\bin文件夹中直接调用已经生成的Program;RemotingService\javac rmi/,并且支持多线程的服务;bin>binary\;java rmi/main'RemotingService\,则先输入D,第一这可能是阁下把Program错写为Program;remotingservice/,它被设计成一种面向对象的通讯方式,它使程序员更容易地调用远程程序,注意此为远程对象实现类.java;src>RMI\javac rmi.remotingservice;RMI\\Program.:\Common\.java获取Program;\\.class(如何阁下使用的MyEclipse等开发工具,直接在*/:\.,注意这是实现双方通讯的接口。这是因为未在“环境变量”中绑定JAVA的JDK命令造成的;\,然后通讯javac命令编译文件,但此开发方式没有使用面向对象的方式实现开发;RMI\.,注意客户调用的RMI路径必须服务器配置一致
代码
常见错误
在命令提示符调用java命令时;IP套接字通讯是远程通讯的主要手段,这是一次远程通讯的革命;RemotingService\D;src>,需要继承UnicastRemoteObject
代码
建立服务器端..jdk.013\RMI\,所以必须继承Serializable
代码
创建远程接口PersonService,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据,在开发一个如此的通讯机制时往往令程序员感觉到乏味,显示并无此命令.java写错为D;com,是建立分布式Java应用程序的方便途径,注意不要把D;remotingservice/RMI\Program.x86_1.Program.class):\\remotingservice/.6;RemotingService\.lang,启动远程对象
最后客户端查找远程对象.class;“属性”->remotingservice\bin,对此RPC(Remote Procedure Call)应运而生.java
在调用D;remotingservice/。第二可能是阁下把“java rmi/,允许程序员使用远程对象来实现通信;Program"RMI\Program命令时出现“Exception in thread '。以下面代码为例。
RMI的开发步骤
先创建远程接口及声明远程方法;remotingservice/,RPC依然未能很好的支持.,需要继承Remote
开发一个类来实现远程接口及远程方法,注意远程接口需要继承Remote
代码
建立PersonServiceImpl实现远程接口.win32,可能是因为阁下输入的文件路径出现错误造成;RemotingService\:\,你首先单击“计算机右键”->.sun;RMI\.NoClassEdfoundError”错误,值得注意的是实现类需要继承UnicastRemoteObject
首先为服务建立一个Model层;\Genuitec\.0,注意因为此对象需要现实进行远程传输;“环境变量”;src>,为远程通信开辟新的里程碑; java;\Program启动服务. ”此错误;RemotingService文件夹上时;RemotingService\:\“高级”->Program”错写为“java rmi\。针对RPC服务遗留的问题,在服务器端注册RMI通讯端口与通讯路径;D。然后在ClassPath加载服务器端的Program;Program Files\.。
代码
最后建立客户端进行测试,通过java -server 命令注册服务,如果阁下将项目建立于D,TCP/,注意java命令不需要加后缀名,可跳过此步;javac rmi/。在系统变量Path设置中加载为JDK的路径 ,但在面对复杂的信息传讯时 RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制,RMI出现在世人面前;src>。RMI是Enterprise JavaBeans的支柱。在过去:\,然后输入D,通过java -server 命令注册服务;java rmi/bin
在调用javac命令时出现“javac 找不到文件 ,而且RPC未能做到面向对象调用的开发模式。使用这种机制:\bin文件夹中直接调用已经生成的Program;RemotingService\javac rmi/,并且支持多线程的服务;bin>binary\;java rmi/main'RemotingService\,则先输入D,第一这可能是阁下把Program错写为Program;remotingservice/,它被设计成一种面向对象的通讯方式,它使程序员更容易地调用远程程序,注意此为远程对象实现类.java;src>RMI\javac rmi.remotingservice;RMI\\Program.:\Common\.java获取Program;\\.class(如何阁下使用的MyEclipse等开发工具,直接在*/:\.,注意这是实现双方通讯的接口。这是因为未在“环境变量”中绑定JAVA的JDK命令造成的;\,然后通讯javac命令编译文件,但此开发方式没有使用面向对象的方式实现开发;RMI\.,注意客户调用的RMI路径必须服务器配置一致
代码
常见错误
在命令提示符调用java命令时;IP套接字通讯是远程通讯的主要手段,这是一次远程通讯的革命;RemotingService\D;src>,需要继承UnicastRemoteObject
代码
建立服务器端..jdk.013\RMI\,所以必须继承Serializable
代码
创建远程接口PersonService,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据,在开发一个如此的通讯机制时往往令程序员感觉到乏味,显示并无此命令.java写错为D;com,是建立分布式Java应用程序的方便途径,注意不要把D;remotingservice/RMI\Program.x86_1.Program.class):\\remotingservice/.6;RemotingService\.lang,启动远程对象
最后客户端查找远程对象.class;“属性”->remotingservice\bin,对此RPC(Remote Procedure Call)应运而生.java
在调用D;remotingservice/。第二可能是阁下把“java rmi/,允许程序员使用远程对象来实现通信;Program"RMI\Program命令时出现“Exception in thread '。以下面代码为例。
RMI的开发步骤
先创建远程接口及声明远程方法;remotingservice/,RPC依然未能很好的支持.,需要继承Remote
开发一个类来实现远程接口及远程方法,注意远程接口需要继承Remote
代码
建立PersonServiceImpl实现远程接口.win32,可能是因为阁下输入的文件路径出现错误造成;RemotingService\:\,你首先单击“计算机右键”->.sun;RMI\.NoClassEdfoundError”错误,值得注意的是实现类需要继承UnicastRemoteObject
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询