java RMI技术
来源:互联网 发布:网络传输速度和速率 编辑:程序博客网 时间:2024/06/05 08:29
1、简介
使用RMI可以实现远程方法的调用,是实现分布式技术的一种方法。RMI的具体应用主要来所可以归纳为三个角色:
- 服务提供者:实现了服务接口,为其他客户端提供服务;
- 注册服务器:是一个提供服务注册的实体,服务器提供者需要把他的服务注册到这个才可以被其他客户查找使用;
- 客户端 :服务的使用者,从注册服务器查找到服务,再使用服务。
关系如下图所示
其实感觉和web Service的SOAP,WSDL,UDDI差不多。
2、构建RMI应用的步骤基本如下:
服务器端:
- 创建远程接口
- 实现远程接口提供的服务(即方法)
- 启动注册服务器
- 创建和注册服务实例
客户端:
- 根据注册的服务名查找服务得到实例的引用
- 调用实例方法
下面具体看了个例子如何使用RMI构建简单应用吧。我们来做一个加法的服务:
服务器端:
创建接口IAdd
package myrmi;import java.rmi.Remote;import java.rmi.RemoteException;public interface IAdd extends Remote { public int add(int a, int b) throws RemoteException;}
实现接口AddImpl
package myrmi;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;public class AddImpl extends UnicastRemoteObject implements IAdd { /** * */ private static final long serialVersionUID = -7993126226032252610L; /* * 必須有構造方法,拋出RemoteException异常 */ public AddImpl() throws RemoteException { } public int add(int a, int b) throws RemoteException { return a + b; }}
启动注册服务,注册服务
package myrmi;import java.rmi.Naming;import java.rmi.registry.LocateRegistry;public class AddService { public static void main(String[] args) { try { // 在本地启动注册服务,或者也可以在其他机器启动作为注册服务器 LocateRegistry.createRegistry(1099); // 在其他机器启动注册服务器可以用:rmiregistry port // 建立一个远程服务对象并注册到注册服务器 IAdd addobj = new AddImpl(); // 注册服务对象到注册服务器 Naming.rebind("//192.168.1.100/AddService", addobj); System.out.println("Add Service is started!"); } catch (Exception e) { System.out.println("Service Error!"); } }}
客户端 :package myrmi;import java.rmi.Remote;import java.rmi.RemoteException;public interface IAdd extends Remote { public int add(int a, int b) throws RemoteException;}
package myrmi;import java.rmi.Naming;public class AddClient { public static void main(String[] argv) { try { // 创建远程对象引用 IAdd objref = (IAdd) Naming.lookup("//192.168.1.100/AddService"); // 调用远程方法 int sum = 0; sum = objref.add(1, 1); System.out.println("result is " + sum); } catch (Exception e) { e.printStackTrace(); } }}
- Java中的RMI技术
- [分布式技术]Java RMI
- java RMI技术
- Java RMI技术
- java RMI技术事例
- Java RMI技术以及Spring封装了的RMI技术
- Java RMI技术以及Spring封装了的RMI技术
- Java RMI技术以及Spring封装了的RMI技术
- Java RMI技术以及Spring封装了的RMI技术
- Java分布式处理技术(RMI,JDNI)
- Java 远程方法调用------RMI技术
- Java分布式处理技术(RMI,JDNI)
- Java分布式处理技术(RMI、JNDI)
- Java分布式处理技术(RMI、JNDI)
- Java分布式处理技术(RMI、JNDI)
- RMI技术
- java rmi
- java rmi
- 算法课作业
- matlab 字符串链连接
- google 对CSDN 博客的收录
- Linux 内核驱动--阻塞与非阻塞机制及Poll/Select分析
- 如何让Android下的多行EditText焦点光标默认在第一行
- java RMI技术
- 图像反色 cvNot(img, pDstImg);
- 转行前的感慨 告别程序员生涯
- 【C++】内存泄漏问题
- C++ 修饰符 restrict
- 爱,顺其自然?
- 微软遭解雇的明星员工:后悔没早点离开微软
- C++ Qt4 编程学习笔记(一)——Hello,Qt!
- 看个小程序,测测你细心不细心