`
longgangbai
  • 浏览: 7331788 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
5  客户端
ProductClient.java
import java.rmi.*;
import java.rmi.server.*;
public class ProductClient
{
    public static void main(String [] args)
    {
        System.setSecurityManager(new RMISecurityManager());
        String url = "rmi://localhost/";
        try
        {
            Product c1 = (Product) Naming.lookup(url + "wyb");
            Product c2 = (Product) Naming.lookup(url + "Beau");
            System.out.println(c1.getDescription());
            System.out.println(c2.getDescription());
        }
        catch (Exception ex)
        {
            System.out.println("Error : " + ex);
        }
        System.exit(0);
    }
}
在该类中使用java.rmi.Naming中的lookup()方法获得对远程对象的引用,依据需要调用该引用的远程方法,其调用方式和对本地对象方法的调用相同。.
6 安全策略文件
因为RMI的安全机制将在服务端发生作用,所以你必须增加一条安全策略。以下是对应安全策略的例子。
ProductServer.policy和ProductClient.policy
grant {
permission java.security.AllPermission "", "";
};
注意:这是一条最简单的安全策略,它允许任何人做任何事,对于你的更加关键性的应用,你必须指定更加详细安全策略。
如果没有上面的安全策略,运行客户端时,会出现如下错误:
E:\wx\2>java ProductClient
Error : java.security.AccessControlException: access denied (java.net.SocketPerm
ission 127.0.0.1:1099 connect,resolve)
7 运行RMI系统
按如下步骤编译、运行系统:
1)为接口、实现和客户、服务器类编译源文件:
Javac Product*.java
2)在实现类上运行rmic
Rmic ProductImpl
3)启动rmi注册程序
Start rmiregistry
4)  启动服务器
start java  -Djava.security.policy=ProductServer.policy ProductServer
如果不指定安全策略,服务器将无法提供服务,一运行即关闭;指定安全策略后,运行后显示:
Construction server implementats ...
binding server implementation to registry ...
Waiting for invocations from clients ...
5)  运行客户程序
Java –Djava.security.policy=ProductClient.policy ProductClient
运行后屏幕显示如下:
E:\wx\2>java  -Djava.security.policy=ProductClient.policy ProductClient
Hello,I am Wang.yuanbin . I love you !
Hello,I am Bueaty . I love you !
分享到:
评论
1 楼 623deyingxiong 2013-01-09  
你好,我在编写RMI客户端服务端时,只要编译就可以直接调用了,没有编写你所说的策略文件,也没有出现Access denied的情况。是不是jdk升级了?我用的1.5,1.6都没问题。

相关推荐

    RMI原理及实现

    Java自带了一些用于RMI开发的工具: - `rmiregistry`:RMI注册表服务,用于存储和查找远程对象。 - `rmic`:编译远程接口,生成必要的Stub和Skeleton类。 - `rmid`:RMI运行时守护进程,管理远程对象的激活和持久化...

    RMI原理及应用详解

    **RMI原理及应用详解** 远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种分布式计算技术,允许在不同的Java虚拟机(JVM)之间进行对象方法的透明调用。RMI的核心思想是使Java对象能够跨越...

    关于java RMI分布式程序开发实例

    二、RMI开发步骤 1. 定义远程接口:创建一个接口,继承`Remote`,并声明远程方法。 2. 实现远程接口:创建实现该接口的类,包含具体业务逻辑。 3. 创建RMIServer:在服务器端启动RMI服务,创建远程对象实例,并在RMI...

    RMI开发实例源码 动态注册和静态注册

    同时,这也有助于理解RMI的工作原理,包括远程方法调用的过程,对象的传输机制,以及如何进行跨网络的交互。 在实际项目中,RMI常用于构建分布式系统,例如分布式数据库、分布式缓存、分布式计算等场景。了解并掌握...

    RMI应用开发小例子源码.rar

    RMI(Remote Method Invocation,...了解RMI的基本原理和使用后,我们可以根据这些源码学习如何设计和实现一个简单的分布式应用,如聊天室。同时,也可以进一步研究RMI的安全性、性能优化以及异常处理等方面的知识。

    rmi原理与入门demo.zip

    远程方法调用(Remote Method Invocation,RMI)是Java提供的一种...这将帮助你理解RMI的工作原理,并为将来开发分布式应用打下基础。在实际应用中,RMI常用于构建分布式系统,如数据库连接池、分布式缓存服务等。

    RMI原理及实现,ppt格式

    远程方法调用(RMI,Remote Method Invocation)是Java平台中用于构建分布式应用程序的关键技术。...理解RMI的工作原理和实现细节对于开发分布式Java应用至关重要,它能帮助开发者构建可扩展、健壮且易于维护的应用。

    RMI网络编程开发之二 如何搭建基于JDK1.5的分布式JAVA RMI 程序

    在Java世界中,远程方法调用(Remote Method ...理解并熟练掌握RMI的原理和使用,对于开发高效、可靠的Java网络应用至关重要。在JDK 1.5版本下,开发者可以利用RMI的优势,构建出高性能、可扩展的分布式系统。

    rmi原理-chn-pdf

    ### RMI原理详解 #### 前言与背景 RMI(Remote Method Invocation,远程方法调用)是一种Java平台上的技术,它允许开发者在不同JVM间的对象间进行方法调用,就像是本地方法调用一样简单。这项技术的出现极大地简化...

    java_rmi.rar_RMI java_java.rmi

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许Java对象在不同的网络...通过实践提供的"rmi"代码示例,你可以深入理解RMI的工作原理,并掌握如何在实际项目中使用它。

    RMI原理详解

    **远程方法调用(Remote Method Invocation,...理解RMI的工作原理和关键组件,对于开发高效、可靠的分布式应用至关重要。通过正确使用RMI,开发者可以构建出可扩展、易于维护的分布式系统,满足各种复杂的业务需求。

    java RMI 详解,实例加原理,想不理解都难

    RMI是Java在分布式环境中实现对象间通信的重要手段,使得开发者可以像操作本地对象一样操作远程对象,极大地简化了分布式应用的开发。 ## 1. RMI 基本概念 ### 1.1 远程接口 (Remote Interface) 远程接口定义了...

    java RMI实现代码

    RMI使得开发者可以像调用本地对象一样调用网络上的对象,极大地简化了分布式应用程序的开发。本项目提供的“java RMI实现代码”包括客户端和服务器端的示例,通过清晰的代码注释帮助理解RMI的工作原理。 一、RMI的...

    JAVA RMI简单例子

    Java RMI(Remote Method Invocation,远程方法...虽然现代Java开发中,RMI可能不是首选的分布式计算解决方案(例如,Web服务和RESTful API更为流行),但了解RMI的基本工作原理对于理解Java的分布式特性仍然很有价值。

    RMI

    Java开发工具包(JDK)自带了RMI的支持,包括编译、运行和调试工具。例如,`rmic`用于生成远程对象的stub和skeleton,`rmiregistry`用于启动RMI注册表,`rmid`管理服务器端的Java虚拟机。 **安全性与性能优化** ...

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

    在进行RMI开发时,确保理解并适当地处理这些问题是非常重要的。 压缩包文件"zrmi"可能包含了上述步骤中的源代码文件,包括远程接口定义、远程实现类、服务器端启动类和客户端调用类。通过查看这些源代码,你可以更...

    精通RMI程序代码

    RMI的基本原理是,通过Java序列化机制,将远程对象的方法调用和参数转化为可以在网络上传输的数据,然后在远程服务器上执行相应的方法,并将结果返回给客户端。这一过程涉及的主要组件包括远程接口、远程对象、...

    RMI可运行的示例代码

    首先,让我们深入理解RMI的工作原理。RMI系统由两部分组成:客户端和服务器端。客户端通过接口调用远程对象的方法,而这些调用实际上被转换为网络请求,发送到服务器端。服务器端接收到请求后,执行相应的方法,并将...

    rmi_java项目实例

    本项目实例是基于RMI技术实现的一个服务器端程序,名为"RMIServer",提供了远程服务的接口和实现,下面将详细介绍RMI的基本概念、工作原理以及如何通过这个项目实例来学习和应用RMI。 1. **RMI基本概念**: - **...

Global site tag (gtag.js) - Google Analytics