`
strawren
  • 浏览: 47926 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对RMI常见问题的总结

阅读更多

          由于项目需要使用RMI,前段时间研究了下RMI,RMI在整个J2EE体系中还算比较复杂的。现对碰到过的问题进行一个总结。

我在研究rmi时,运行环境说明:

weblogic服务器下的EJB调用另外一台服务器的远程接口。

遇到的问题以及解决办法:

一、java.security.AccessControlException: access denied (java.net.SocketPermission

127.0.0.1:1099 connect,resolve)错误:

这个错误主要因为权限引起的,解决办法有两个:

1、取消安全管理器,即在客户端代码中注释掉

//System.setSecurityManager(。。。);

2、编写客户端policy文件,文件内容如下:

grant {
permission java.security.AllPermission;

};

客户端程序运行是采用如下命令格式:

 java -Djava.security.policy=policy.txt   yourRMIClientClass

二、java.lang.ClassNotFoundException: com.deitel.messenger.rmi.server.ChatSe
rverImpl_Stub

这个错误是因为RMI客户端运行需要两个文件,一个是接口文件,一个是stub文件(stub文件通过rmic编译得到),出问题的最大可能性就是这个stub忘记放入客户端的类路径中了。

解决办法:把stub文件复制到客户端的类路径中(:)似乎有点罗嗦了,呵呵。

三、服务器端也可以运用安全策略,可编写policy文件,文件内容如下:

grant {
permission java.net.SocketPermission "*:1024-65535",
"connect,accept,resolve";
};

启动服务器时,命令行为

java -Djava.security.policy=policy.yourRMIServer

四、weblogic下的部署特别麻烦,在ant打好jar包后,还要手工把stub文件再加入到jar包中,而且测试格外麻烦。

至于如何写一个RMI程序,网上的原代码一大堆,不过我认为这篇文章写的不错:http://spaces.msn.com/stephensuen/Blog/cns!1p1G_DGhjYiYGmj6keNZQAcw!151.entry

分享到:
评论

相关推荐

    java RMI 总结

    **RMI常见问题与解决方案** 1. **安全性**:RMI默认不启用安全策略,因此在生产环境中应配置合适的权限,以防止未授权访问。 2. **异常处理**:`RemoteException`是最常见的异常,通常表示网络问题或服务器端异常。...

    rmi原理及应用ppt

    RMI旨在解决Socket通信中的问题,提供更简便的远程对象调用方式。 #### 三、RMI的核心概念 - **RPC (Remote Procedure Call)**:是一种分布式计算中常见的模式,允许一个进程调用另一个进程中的函数或方法,通常是...

    Java RMI demo多对象

    - `java.rmi.RemoteException`是最常见的RMI异常,通常表示网络或序列化问题。 - `NotBoundException`表示试图查找的远程对象未在注册表中找到。 - `ConnectException`和`UnknownHostException`通常表示网络问题...

    RMI商品管理系统.zip

    开发过程中,使用Eclipse作为集成开发环境(IDE)是非常常见的选择,它提供了强大的Java开发工具和对RMI的良好支持。开发者可以在Eclipse中轻松创建RMI项目,编写接口和实现,配置RMI注册表,并进行调试。 总结来说...

    分布式Java RMI实现的学生成绩管理系统

    分布式Java RMI(Remote Method Invocation)技术是一种在Java平台中实现分布式计算的重要工具,它允许一个对象...通过学习和理解这个项目,开发者可以深化对Java RMI的理解,以及如何在实际项目中应用分布式计算技术。

    rmi 客户端 和 服务端 代码

    - 考虑异常处理,特别是`RemoteException`,这是RMI调用中常见的异常类型。 - 配置安全策略,因为RMI可以跨越网络,因此需要关注安全性。 总结,RMI是Java中强大的分布式计算工具,它简化了客户端和服务端之间的...

    华南理工大学分布式实验 RMI实验以及实验报告

    实验过程中,学生可能会遇到网络延迟、并发控制、异常处理等问题,这些问题的解决将深化对分布式系统原理的理解。此外,通过实际操作,学生将掌握如何在Java环境中设置和调试RMI应用,增强其解决问题的能力。 6. *...

    J2EE开发中常见的问题总结

    【J2EE开发常见问题详解】 在J2EE开发中,开发者经常遇到一系列的问题,这些问题不仅涉及技术细节,还关乎架构设计和应用部署。本文将深入探讨这些常见问题,帮助开发者提升开发效率和解决问题的能力。 1. **容器...

    RMI编程范例,JAVA RMI

    总结起来,这个RMI范例展示了如何创建一个简单的服务器,它能管理多个远程客户端,并能够周期性地调用客户端的方法。客户端则需要实现特定的远程接口,并通过RMI注册表找到服务器,完成注册过程。这种模式在分布式...

    spring RMI 实用分享

    总结,Spring RMI提供了一种简单而强大的方式来构建分布式系统,通过Spring的集成,我们可以方便地进行远程服务的开发、配置和调用。同时,它还支持事务管理和AOP,使得在处理复杂业务逻辑时更加得心应手。在实际...

    JAVA 局域网对战五子棋游戏(基于RMI)

    总结来说,"JAVA 局域网对战五子棋游戏(基于RMI)"项目涵盖了JAVA编程、GUI设计、网络编程、并发处理、错误处理等多个方面的知识点,是学习和实践JAVA技术的好实例。通过这个项目,开发者可以深入理解JAVA RMI的...

    rmi使用

    本篇文章将深入探讨RMI的使用,包括其基本概念、工作原理、配置步骤以及常见问题。 一、RMI基本概念 RMI是一种协议,用于在Java环境中执行跨网络的远程方法调用。它使得一个Java对象可以调用另一个位于不同JVM上的...

    基于Spring+hibernate+mysql+rmi+swing的登录Demo

    总结起来,这个登录Demo巧妙地融合了Spring的控制反转与面向切面编程,Hibernate的对象关系映射,MySQL的可靠数据存储,RMI的远程通信,以及Swing的图形界面设计,形成了一套完整的客户端-服务器端应用。这样的组合...

    Java常见问题集锦

    ### Java常见问题集锦 #### 1. Java2 (JDK 1.2) 的环境配置 - **问题描述**:如何在不同操作系统上正确配置Java2(即JDK 1.2)的环境变量? - **解决方案**: - **Solaris平台**: - 设置`JAVA_HOME`为Java2的...

    Java RMI的Server和Client工程实例

    总结,Java RMI的Server和Client工程实例为我们展示了如何创建、注册远程对象以及如何在客户端调用这些对象。通过这种方式,开发者可以构建分布式应用程序,实现不同机器间的协作和数据交换。理解和熟练掌握RMI,有...

    rmi 孙维琴示例和电子版

    "rmi"压缩包可能包含了孙维琴关于RMI的教程电子版,这份资源详细解释了RMI的概念、配置、示例代码以及常见问题的解决方法。对于学习和理解RMI提供了很大的帮助,特别是对于初学者,不用再花费时间编写教案,可以直接...

    CXF+RMI+HESSIAN

    总结来说,“CXF+RMI+HESSIAN”是一种高效的分布式服务解决方案,它结合了Web服务框架、远程调用机制以及优化通信的协议。而SQL语言编程则是处理数据的关键技能,两者共同构成了现代企业级应用的重要组成部分。在...

    draw_rmi

    总结来说,“draw_rmi”可能是一个项目或教程,展示了如何在Applet中利用RMI进行远程方法调用,以实现客户端和服务器之间的交互。这个话题涉及了Java的网络编程、分布式计算以及早期的Web客户端技术,对于理解Java的...

    distrubuted communications(RMI & RPC).pdf

    在IT领域,分布式通信是实现跨网络系统交互的关键技术之一,其中远程方法调用(RMI)和远程过程调用(RPC)是最为常见的两种机制。本文将深入探讨这两种技术的特点、工作原理以及它们之间的异同,以帮助程序员更好地...

    西农中间件课程实验一RMI+JDBC

    实验过程中可能会遇到一些常见的问题,如JDK版本不匹配导致的权限问题和端口冲突等问题。解决这些问题通常需要检查JDK版本,并适当调整相关配置。通过这次实验,学生不仅能够掌握RMI和JDBC的基本使用方法,还能学会...

Global site tag (gtag.js) - Google Analytics