Java RMI远程方法调用
来源:互联网 发布:彩票数据库设计 编辑:程序博客网 时间:2024/05/16 15:18
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。
1、接口定义
package com.lxp.rmi;import java.rmi.Remote;import java.rmi.RemoteException;public interface IHello extends Remote{public String HelloWorld() throws RemoteException;public String sayHelloToSomeBody(String name) throws RemoteException;}2、接口实现
package com.lxp.rmi;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;//必须继承UnicastRemoteObjectpublic class HelloImpl extends UnicastRemoteObject implements IHello{@Overridepublic String HelloWorld() throws RemoteException {return "Hello World!";}@Overridepublic String sayHelloToSomeBody(String name) throws RemoteException {return "你好"+name;}public HelloImpl() throws RemoteException {}}3、服务器端实现
package com.lxp.rmi;import java.net.MalformedURLException;import java.rmi.AlreadyBoundException;import java.rmi.Naming;import java.rmi.RemoteException;import java.rmi.registry.LocateRegistry;public class HelloServer {public static void main(String[] args) {try { //创建一个远程对象 IHello rhello = new HelloImpl(); //本地主机上的远程对象注册表Registry的实例,并指定端口为8888,这一步必不可少(Java默认端口是1099),必不可缺的一步,缺少注册表创建,则无法绑定对象到远程注册表上 LocateRegistry.createRegistry(8889);//把远程对象注册到RMI注册服务器上,并命名为RHello //绑定的URL标准格式为:rmi://host:port/name(其中协议名可以省略,下面两种写法都是正确的)Naming.bind("rmi://localhost:8889/RHello", rhello);//Naming.bind("//localhost:8888/RHello", rhello);System.out.println(">>>>>>>Info:远程IHello对象绑定成功!");} catch(RemoteException e) {System.out.println("创建远程对象发生异常!");e.printStackTrace();} catch(AlreadyBoundException e) {System.out.println("发生重复绑定对象异常!");e.printStackTrace();} catch(MalformedURLException e) {System.out.println("发生URL畸形异常!");e.printStackTrace();}}}4、客户端实现
package com.lxp.rmi;import java.net.MalformedURLException;import java.rmi.Naming;import java.rmi.NotBoundException;import java.rmi.RemoteException;public class HelloClient {public static void main(String[] args) {try {IHello rhello = (IHello)Naming.lookup("rmi://localhost:8889/RHello");System.out.println(rhello.HelloWorld());System.out.println(rhello.sayHelloToSomeBody("鸣人"));} catch(RemoteException e) {e.printStackTrace();} catch(NotBoundException e) {e.printStackTrace();} catch(MalformedURLException e) {e.printStackTrace();}}}
0 0
- Java RMI远程方法调用
- Java远程方法调用(RMI)
- Java远程方法调用RMI
- Java Rmi 远程方法调用
- JAVA rmi 远程方法调用
- java rmi远程方法调用
- Java RMI-远程方法调用
- Java远程方法调用(RMI)
- RMI - Java远程方法调用
- Java RMI-远程方法调用
- RMI--java远程方法调用
- Java RMI 远程方法调用
- java rmi远程方法调用
- Java 远程方法调用 RMI
- Java RMI远程方法调用
- Java远程方法调用(RMI)
- java RMI 远程方法调用
- Java.RMI远程方法调用
- Populating Next Right Pointers in Each Node II--LeetCode
- 【JavaScript】数组定义末尾请不要留下逗号
- POJ3468---线段树模版--A Simple Problem with Integers
- 软键盘开关控制
- wordpress 上传主题 权限
- Java RMI远程方法调用
- Search a 2D Matrix
- git学习笔记一(linux)(安装与创建版本库)
- 设置控件可见与不可见
- android 使用drawerLayout实现侧滑菜单
- 游戏原画
- xml的基础知识
- 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案
- 常见的几种java.net.SocketException