`
tomcat_oracle
  • 浏览: 318784 次
社区版块
存档分类
最新评论

Java中RMI远程调用

    博客分类:
  • Java
阅读更多
Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。
  Java RMI极大地依赖于接口。在需要创建一个远程对象的时候,程序员通过传递一个接口来隐藏底层的实现细节。客户端得到的远程对象句柄正好与本地的根代码连接,由后者负责透过网络通信。这样一来,程序员只需关心如何通过自己的接口句柄发送消息。
  服务端新建接口:
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface RmiTestInterface extends Remote{
public String getTest() throws RemoteException;
}
 接口的实现:
import java.rmi.RemoteException;
public class RmiTestImpl implements RmiTestInterface {
public RmiTestImpl() throws RemoteException {
//super();
// TODO Auto-generated constructor stub
//UnicastRemoteObject.exportObject(this);
}
/**
*
*/
public String getTest() throws RemoteException {
// TODO Auto-generated method stub
return "Hello,Test";
}
}
 定义一个main方法,注册你已经实现的RMI接口,包括开放端口等:
public static void main(String []args) throws AlreadyBoundException, RemoteException{
RmiTestImpl t=new RmiTestImpl();
RmiTestInterface tt=(RmiTestInterface)UnicastRemoteObject.exportObject(t,0);
// Bind the remote object's stub in the registry
Registry registry = LocateRegistry.createRegistry(2001);
registry.rebind("test", tt);
System.out.println("server is start");
}
   Server端的代码已经全部写完,但是还要把接口类(RmiTestInterface)打包成jar,导入进client端的项目中。
  运行服务端后控制台输出:
  server is start
  导入服务端的接口jar以后,可以开始编写一个client端的主程序:
写道
public static void main(String []args){
try {
Registry registry = LocateRegistry.getRegistry("localhost",2001);
RmiTestInterface t= (RmiTestInterface) registry.lookup("test");
System.out.println("client:"+t.getTest());
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NotBoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
  运行客户端main方法后,控制台输出:
  Hello,Test
5
1
分享到:
评论
7 楼 hot66hot 2014-06-09  
finallygo 写道
net_hare 写道
josico 写道
现在已经没有商业化的使用RMI了
就连CXF 也慢慢在废弃 效率太慢

哪目前什么效率比较好呢?REST?

现在一般都是用hession,thrift,ice之类的

DUBBO include all
6 楼 finallygo 2014-06-09  
net_hare 写道
josico 写道
现在已经没有商业化的使用RMI了
就连CXF 也慢慢在废弃 效率太慢

哪目前什么效率比较好呢?REST?

现在一般都是用hession,thrift,ice之类的
5 楼 net_hare 2014-06-09  
josico 写道
现在已经没有商业化的使用RMI了
就连CXF 也慢慢在废弃 效率太慢

哪目前什么效率比较好呢?REST?
4 楼 xly_971223 2014-06-09  
直接上dubbo
rmi out了
3 楼 freezingsky 2014-06-08  
RMI是JAVA的专用技术,对于系统异构,有心无力。目前,也没有得到大面积的应用。但作用知识,掌握它也是应该的!
2 楼 飞天雪夜 2014-06-08  
学习了,现在公司用的框架就是基于RMI做了二次封装,一直没太明白原理
1 楼 josico 2014-06-08  
现在已经没有商业化的使用RMI了
就连CXF 也慢慢在废弃 效率太慢

相关推荐

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

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

    java rmi远程调用

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

    java 实现RMI远程调用

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

    java rmi远程方法调用 客户端

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

    RMI远程调用代码及使用方法

    ### RMI远程调用代码及使用方法 #### 一、RMI简介 远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种分布式计算技术,它允许开发人员在不同的Java虚拟机(JVM)之间进行对象的远程调用。通过...

    JAVA RMI远程调用方法代码

    - 使用`java.rmi.Naming`的`lookup`方法查找服务器上的远程对象,通过注册表中的名字定位远程服务。 - 强制类型转换,将返回的`Remote`类型的对象转换为具体的服务接口类型。 - 调用远程对象的方法,就像调用本地...

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

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

    Java RMI 远程方法调用

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同的Java虚拟机之间进行方法调用,仿佛这些方法是在本地对象上执行一样。这个技术极大地简化了构建分布式应用的...

    Java RMI(远程方法调用)Demo

    在Java RMI的Demo中,通常会包含以下步骤: 1. **创建远程接口**:定义一个继承自Remote的接口,声明需要远程调用的方法。 2. **实现远程接口**:编写一个类实现这个接口,提供具体的方法实现。 3. **注册远程...

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

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

    RMI远程调用

    总结来说,RMI远程调用是Java实现分布式计算的关键技术,它通过简化网络编程,使开发者能专注于业务逻辑,而非底层通信细节。结合Spring框架,可以进一步提升RMI应用的开发效率和可维护性。在实际项目中,合理利用...

    rmi远程调用读取文件

    在这个场景中,“rmi远程调用读取文件”指的是通过RMI机制,使得一个JVM中的程序能够请求另一个JVM上的程序读取并返回文件内容。这种方式在分布式系统中非常常见,可以用于数据共享、文件服务等应用。 RMI的基本...

    动态代理与RMI远程调用

    在提供的`动态代理与RMI远程调用.ppt`中,可能会详细解释这两个概念,通过PPT的讲解和实例,可以更直观地理解动态代理和RMI的工作原理。同时,`src`目录下的源码文件则提供了具体的实现示例,读者可以通过阅读代码,...

    Java RMI 远程调用实例.rar

    Java RMI 远程调用实例,各个文件的作用:  DISPLAYPERFECTTIME.JAVA|:向rmiregistry查找PerfectTime对象,定义调用远程对象的方法。  PERFECTTIME.JAVA:向RMI注册服务,以便客户端查找,创建提供注册服务的本地...

    java rmi 远程方法调用 服务端

    1. 远程接口(Remote Interface):定义了可以被远程调用的方法,这些方法必须声明抛出`java.rmi.RemoteException`。接口需要使用`@Remote`注解标记。 2. 远程实现类(Remote Implementation):实现了远程接口,并...

    使用rmi进行远程调用

    在这个“使用rmi进行远程调用”的示例中,我们看到的是一个基于RMI实现的银行系统。这个小例子旨在帮助开发者理解如何使用RMI来构建分布式应用程序,尤其是在处理跨网络的远程对象交互时。 首先,RMI的核心概念是...

    Java RMI远程方法调用

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许Java对象在不同的网络环境中进行交互,就像调用本地方法一样。RMI系统的核心概念是客户端可以调用服务器端的对象上...

    RMI实现的远程调用

    4. ** stubs 和 skeletons**:在RMI中,远程对象的引用在客户端是通过stubs(桩)表示的,而实际的远程调用则由serverside的skeleton(骨架)处理。现代的JVM已经不再需要手动生成stubs和skeletons,它们由Java...

    RMI.rar_Java RMI_java.rmi_java.rmi.Remot_remote

    Java RMI(远程方法调用)是Java编程语言中的一项核心技术,自JDK 1.1版本起就被引入,用于构建分布式系统。RMI允许Java对象在不同的Java虚拟机(JVMs)之间进行交互,仿佛这些对象是在同一台机器上一样。这种技术的...

Global site tag (gtag.js) - Google Analytics