`

JAVA远程调用RMI

阅读更多

Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。

Java RMI极大地依赖于接口。在需要创建一个远程对象的时候,程序员通过传递一个接口来隐藏底层的实现细节。客户端得到的远程对象句柄正好与本地的根代码连接,由后者负责透过网络通信。这样一来,程序员只需关心如何通过自己的接口句柄发送消息。

接口的两种常见实现方式是:最初使用JRMP(Java Remote Message Protocol,Java远程消息交换协议)实现;此外还可以用与CORBA兼容的方法实现。RMI一般指的是编程接口,也有时候同时包括JRMP和API(应用程序编程接口),而RMI-IIOP则一般指RMI接口接管绝大部分的功能,以支持CORBA的实现。

最初的RMI API设计为通用地支持不同形式的接口实现。后来,CORBA增加了传值(pass by value)功能,以实现RMI接口。然而RMI-IIOPJRMP实现的接口并不完全一致。

所使用Java包的名字是java.rmi

上例子:

Server端编写

1、//定义实体类用于RMI传递对象,注意该对象一定要序列化

public class Account implements Serializable{
     private static final long serialVersionUID = 1L;
     String userName;
     String password;
     省略getter and setter...
 }

2、定义接口

接口定义了2个方法,一个用于RMI传递字符串、一个传递对象

public interface UserManagerInterface extends Remote{
 public String getUserName() throws RemoteException;
 public Account getAdminAccount() throws RemoteException;

}
3、定义实现类

public class UserManagerImpl implements UserManagerInterface {

     @Override
     public String getUserName() throws RemoteException {
          // TODO Auto-generated method stub
         return "abc";
     }

     @Override
     public Account getAdminAccount() throws RemoteException {
          Account account = new Account();
          account.setUserName("admin");
          account.setPassword("123");
          return account;
     }

}

4、发布RMI服务端

public class Entry {
     public static void main(String[] args) throws RemoteException{
          UserManagerInterface userManagerImpl = new UserManagerImpl();
          UserManagerInterface userManagerInterface =

                   (UserManagerInterface)UnicastRemoteObject.exportObject(userManagerImpl,0);
          Registry registry = LocateRegistry.createRegistry(1099);
          registry.rebind("userManager", userManagerInterface);


          System.out.println("server is ready");
     }
}

至此服务端代码完成

=====================

但是还要把bean类(Account)和接口类(UserMangerInterface)打包成jar,以便可以在下面导入进client端的项目中。

项目--》右键--》导出--》jar--》选择bean和interface--》命名为RmiServerInterface.jar--》finish

1、创建client端的程序。新建一个project。创建完成后,把刚才jar包导入进client的项目中

2、创建客户端代码测试代码

public class ClientEntry {
     public static void main(String[] args){
          try {
                Registry registry = LocateRegistry.getRegistry("localhost", 1099);
                UserManagerInterface userManagerInterface =

                        (UserManagerInterface)registry.lookup("userManager");
   
                System.out.println(userManagerInterface.getUserName());
   
                Account accout = userManagerInterface.getAdminAccount();
                if(accout != null){
                   System.out.println("userName=" + accout.getUserName() +

                          ";password=" + accout.getPassword());
                 }
            } catch (Exception e) {
                   e.printStackTrace();
           }
      }
}

运行客户端,打印结果

 

 

  • 大小: 23.7 KB
分享到:
评论

相关推荐

    JAVA远程调用RMI与应用

    JAVA远程调用RMI与应用 一、RMI(Remote Method Invocation)概念解析 RMI,即远程方法调用,是Java平台提供的分布式计算模型,它允许Java对象跨网络进行方法调用,如同本地调用一样。RMI的实现基于Java的面向对象...

    java远程调用rmi实例

    在Windows环境下,同样需要JRE,运行客户端程序来执行远程调用。 注意,RMI的安全性、异常处理和网络通信细节也是开发者需要考虑的问题。例如,需要处理可能的`RemoteException`,以及配置JVM的安全策略文件以允许...

    三种方式实现java远程调用(rmi),绝对可用

    Java远程调用(Remote Method Invocation,RMI)是Java平台中一种重要的分布式计算技术,它允许在不同网络环境中的Java对象之间进行透明的交互。在本文中,我们将深入探讨三种不同的RMI实现方法:原始方式、Spring...

    java 远程调用rmi实现的简单例子

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种用于在不同网络节点上的Java对象之间进行通信的技术。这个技术允许一个Java对象在一台机器上执行方法,而这个方法的实现实际上位于另一台...

    java调用RMI小结

    Java RMI 提供了一种透明的远程调用方式,使得开发者可以像操作本地对象一样操作远程对象。 在Java RMI应用开发中,有几个关键点需要注意: 1. **远程服务接口定义**: - 接口是RMI的核心,它定义了可供远程调用...

    java 远程方法调用(java rmi)

    Java 远程方法调用(Java RMI,Remote Method Invocation)是Java平台提供的一种用于构建分布式应用程序的技术。它允许一个对象在某个Java虚拟机(JVM)上执行的方法调用另一个在不同JVM上的对象的方法,仿佛它们是...

    Java-远程方法调用RMI参数详解.docx

    Java 远程方法调用(Remote Method Invocation,RMI)是一种在分布式环境中调用对象方法的技术,它使得Java应用程序能够透明地调用运行在不同 JVM 上的远程对象的方法。RMI 包含了一系列的参数,这些参数对于优化...

    基于动态代理的Java远程调用框架的研究1

    本文探讨的是一种基于动态代理的Java远程调用框架,旨在解决传统远程调用技术如RMI(Remote Method Invocation)所面临的挑战。 RMI是Java平台上的基础远程调用技术,自JDK 1.1开始引入。它允许对象方法在不同的JVM...

    JAVA RMI远程调用方法代码

    接下来,`getMemberAccountCount`方法实现了远程调用逻辑,通过`this.ref.invoke`方法调用了远程方法,并处理了可能抛出的异常。 #### 2. 客户端代码分析 客户端通过`Naming.lookup`方法获取远程服务的引用,然后...

    java rmi远程调用

    最近在学习代理模式,用到了java rmi远程调用,包含服务端和客户端,之前一直没有接触过,学习了java rmi远程调用,一方面可以了解代理模式,一方面熟悉java低层的远程

    java rmi远程方法调用 客户端

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同的Java虚拟机之间透明地调用对象的方法。在RMI架构中,客户端能够像调用本地对象一样调用远程服务器上的对象...

    java远程调用批处理文件代码归总

    Java远程调用批处理文件是将Java编程与批处理脚本结合的一种技术,它允许Java程序执行在远程服务器上的批处理任务,而无需人工干预。这通常涉及到网络通信和进程间交互,使得分布式系统能够更加灵活地管理和调度任务...

    Java RMI远程方法调用详解-例子代码

    首先,我们需要定义一个实现了`java.rmi.Remote`接口的类,比如`MyRemoteInterface.java`,并在这个接口中声明所有需要远程调用的方法。这些方法必须抛出`java.rmi.RemoteException`,因为网络通信可能会出现异常。...

    通过Java RMI实现远程调用的一个简单例子

    这个简单的例子将引导我们了解如何利用Java RMI实现远程调用。 首先,我们要创建远程接口。在Java RMI中,远程接口是一个实现了`java.rmi.Remote`接口的Java接口。接口中声明的方法将在客户端调用,实际上会在...

    Java RMI(远程方法调用)Demo

    1. **创建远程接口**:定义一个继承自Remote的接口,声明需要远程调用的方法。 2. **实现远程接口**:编写一个类实现这个接口,提供具体的方法实现。 3. **注册远程对象**:在服务器端创建远程对象实例,然后将其...

    java 实现RMI远程调用

    实现java RMI 远程调用,包括 RMIServer RMIClient源码,测试用例。

    java spring+rmi 的远程调用例子

    这个压缩包文件“Spring+RMI”很可能包含了实现这样一个远程调用示例的所有必要组成部分,包括配置文件、接口定义、服务器端实现以及客户端调用代码。 首先,我们来理解一下Java RMI。RMI是Java提供的一种原生的...

    基于RMI的Java远程调用.zip

    "基于RMI的Java远程调用"这个主题涵盖了如何使用RMI来实现跨网络的Java对象交互。 首先,我们需要理解RMI的基本概念。RMI的核心是远程对象,这是在远程服务器上存在的一个对象,可以通过网络调用其方法。这个过程...

    java 远程调用工具

    Java远程调用工具是开发过程中不可或缺的利器,尤其在处理分布式系统和服务之间的交互时。本文将深入探讨如何利用Java技术进行远程调用,特别是针对WebService和RESTful接口的调用,以及一个常用的工具——SoapUI。 ...

Global site tag (gtag.js) - Google Analytics