`
MauerSu
  • 浏览: 520678 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java rmi 入门实例

    博客分类:
  • RMI
 
阅读更多

源:http://blog.sina.com.cn/s/blog_5198c7370100eabg.html

评:

java rmi即java远程接口调用,实现了2台虚拟机之间的程序调用,这样,网络上的任何两台计算机就可以相互调用对方的程序(如果允许)。

    好了,下面就以经典的 Hello world作为例子讲解。开发rmi的步骤如下。
1、编写远程接口,远程接口实现类
2、编译
3、生成接口实现类存根
4、在服务器端启动rmiregistry命令
5、在服务端注册发布远程对象
6、在客户端获取远程对象
 
实例:
以下远程接口类为HelloRemote,实现类为HelloImpl,服务器端的发布类为RMIServer,客户端的调用类为RMIClient,为简单考虑,服务器和客户端均在同一台机器(所谓服务器和客户机,是两者运行在2个虚拟机进程下)。
一、编写类
1、远程接口类,需基础java.rmi.Remote接口,且方法抛出RMIException
 
public interface HelloRemote extends Remote{
public void sayHello() throws RemoteException;   
}
2、远程接口实现类,需继承UnicastRemoteObject
 
public class HelloImpl extends UnicastRemoteObject  implements HelloRemote{
public HelloImpl() throws RemoteException {
super();
}
public void sayHello() throws RemoteException {
System.out.println("Hello World!");
}
}
3、服务端类
服务端类用于发布远程对象
public class RMIServer {
public static void main(String[] args) throws RemoteException, MalformedURLException {
 
HelloRemote hello=new HelloImpl();
Naming.rebind("hello", hello);
}
}
4、客户端类
 
public class RMIClient {
public static void main(String args[]) throws MalformedURLException, RemoteException, NotBoundException{
                           System.setSecurityManager(new   RMISecurityManager());//如果服务器和客户端不再同一台机器要加这行
HelloRemote hello=(HelloRemote) Naming.lookup("hello");
   hello.sayHello();
}
}
远程接口类需同时在服务端和客户端存在
二、编译(注意以上类都没有包,这里主要是简化操作考虑)
客户端文件夹在 E:/client(简称client),服务端在E:/server(简称server)
分别编译以上4个文件。然后将Hello.class分别放到client和server下,将Client.class放到client下,Server.class放到server下,HelloImpl.class文件放到server文件夹下
三、生成存根和骨架
进入server文件夹在命令行下输入命令 rmic HelloImpl,将生成一个HelloImpl_Stub.class文件
将此文件复制到client目录下(server与client均该文件)
 
四、运行注册程序
在命令行中进入server文件夹 输入命令 rmiregistry,用于启动注册,在此前需设置classpath为E:/server,输入rmiregistry命令后将在server文件夹下生成一个
 
五、运行服务类
java Server
六、运行客户类
java Client
你将看到执行成功。
 
当你执行不顺利时,请看看下面:
1、最终执行时要3个命令行窗口,一个运行rmiregistry,一个运行Server,一个运行Clinet,先执行rmiregistry命令,接着执行java Server,最后执行java Client
2、客户端和服务端均要有存根(HelloImpl_Stub.class)和远程接口的定义,且包名要一致。
3、当运行服务器时,提示找不到HelloImpl_Stub,那是你没指定类路径,那请你在执行rmiregistry前设置classpath
4、出现AscessableException访问非法时,需要修改此略文件,在jre/security目录下的java.policy文件中(如果你有多个jre,你无法确定是哪个。那就全部修改吧),在该文件中添加如下内容
grant {
           permission java.net.SocketPermission "*:1024-65535",
                "connect,accept";
           permission java.net.SocketPermission "*:80","connect";
        };
 
5、指定端口,默认是1099,可以在运行rmiregistry时指定 如 rmiregistry 1098,也可以在Server.java中指定,如Registry.createRegistry(1088).
 
6、绑定地址的设置
简单形式Naming.bind("hello"),本机地址时才可以
完全形式Naming.bind("rmi://117.45.220.11:1099/RMI_Hello")
分享到:
评论

相关推荐

    JavaRMI快速入门

    Java Remote Method Invocation(Java RMI)是Java编程语言中用于在网络间进行远程对象调用的技术。它是Java平台的标准部分,允许程序员在分布式环境中调用对象的方法,就像它们在同一台计算机上一样。Java RMI对于...

    java RMI入门例子

    这个"java RMI入门例子"将带你深入理解RMI的工作原理和主要组件。 RMI的核心概念包括: 1. **远程接口**:这是定义远程方法的接口,通常继承自java.rmi.Remote。这些方法声明抛出java.rmi.RemoteException,表示...

    java rmi demo

    java rmi入门级实例:分为三个javase项目,rmi-api(存放公共的接口和实体),rmi-server(rmi服务器端),rmi-client(rmi客户端),其中服务端和客户端都依赖rmi-api项目

    RMI 零基础入门与实例

    提供的`JAVA_RMI_实例.doc`文档可能包含了一个简单的RMI应用实例,通常包括以下部分: 1. **创建远程接口:**定义一个名为`MyRemoteInterface`的接口,声明如`sayHello()`等远程方法。 2. **实现远程接口:**创建一...

    RMI教程-入门经典

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许Java对象在不同的Java虚拟机之间进行通信,仿佛这些对象都在同一台机器上。RMI是构建分布式应用程序的关键组件,...

    SSD8 Java RMI and HTTP

    - **Getting Started Using Java RMI.mht**:一份RMI的入门指南,可能包含如何设置环境、编写远程接口和实现、注册以及调用远程对象的步骤。 - **javathread.ppt**:虽然不直接关联RMI或HTTP,但线程是Java编程中的...

    RMI入门(二)实例 --- 亲自将代码调试成功

    在本文中,我们将深入探讨Java Remote Method Invocation (RMI)技术,通过一个具体的实例来学习如何设置、构建和调试RMI应用。RMI是Java提供的一种远程对象调用机制,它允许Java对象在不同的JVM之间进行通信。在这个...

    RMI 入门学习资料

    RMI(Remote Method Invocation)是Java提供的一种用于构建分布式应用程序的机制,它允许Java对象在不同的网络环境中相互调用方法,实现了远程对象间的无缝通信。RMI是在JDK1.1版本中引入的,它是纯Java实现的,遵循...

    JAVA-RMI使用快速入门.doc

    【JAVA-RMI使用快速入门】 Java RMI(Remote Method Invocation,远程方法调用)是Java平台中用于构建分布式应用程序的一种核心技术。它允许Java对象在不同的Java虚拟机(JVM)之间进行交互,实现了"Write Once, ...

    RMI入门小结

    **RMI(Remote Method Invocation)入门小结** 远程方法调用(RMI)是Java平台上的一个关键特性,它允许Java对象在不同的JVM(Java虚拟机)之间进行交互,从而实现分布式计算。RMI是Java开发分布式应用程序的基础,...

    rmi入门(带源码)

    在IT行业中,Remote Method ...总之,“rmi入门(带源码)”的学习资源将引导你逐步了解并掌握RMI的基本原理和实践操作,通过实际的源代码示例加深理解,这对于想要提升Java分布式编程能力的开发者来说是一份宝贵的资料。

    rmi入门

    【标题】:“RMI入门” 远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种用于在分布式环境中实现对象间通信的技术。RMI允许一个Java对象调用网络另一端的Java对象的方法,就像调用本地对象...

    java rmi shi

    ### Java RMI (Remote Method Invocation) 分布式服务器通信详解 #### 一、Java RMI 概述 Java RMI (Remote Method ...对于初学者来说,这是一个很好的起点,可以帮助他们快速入门并掌握RMI的核心概念和技术细节。

    CORBA与RMI的比较 及 实例

    标题 "CORBA与RMI的比较及实例" 涉及到的是两种分布式计算技术——Common Object Request Broker Architecture (CORBA) 和 Remote Method Invocation (RMI) 的对比以及实际应用的示例。这两种技术都是为了让运行在...

    网络编程入门rmi初级教程

    RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种机制,用于实现分布式计算,允许一个Java对象调用位于另一台计算机上的Java对象的方法。本教程主要针对RMI的初级学习者,将引导你逐步进入这个...

    javaRMIDemo实例

    这个"javaRMIDemo实例"就是针对这一技术的一个入门教程,旨在帮助初学者理解并掌握RMI的基本用法。 首先,RMI的核心概念包括`远程接口`、`远程对象`和` stub 和 skeleton`。远程接口定义了可以在远程进程中调用的...

    JAVA入门教程

    - Java还提供了诸如RMI(远程方法调用)、JMS(Java消息服务)等API,用于支持网络通信和远程过程调用等功能。 #### 二、Java在各领域的应用 Java的应用范围非常广泛,以下是一些典型的应用领域: - **软件开发...

Global site tag (gtag.js) - Google Analytics