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

在JDK5中,RMI的简单运用

阅读更多

      这段时间碰巧做一个RMI的应用,刚上手还是用旧的方法完成,不曾想过JDK在RMI有了较大的简化。所以在此通过一个小的demo,把这部分知识点与大家分享。非常感谢梦梦同学让我对这部分内容得以重新巩固。

     JDK5下的RMI示例编写与操作步骤如下。

     1、创建接口
public interface SecureSecond extends Remote
{
    long getMilliSeconds() throws RemoteException;
}

 

2、创建实现类
public class SecureSecondImpl extends UnicastRemoteObject implements
  SecureSecond {
 /**
  *
  */
 private static final long serialVersionUID = 1L;

 public SecureSecondImpl() throws RemoteException {
 };

 public long getMilliSeconds() throws RemoteException {
  // The method getTime returns the time in msecs
  System.out.println("method called");
  long time = new Date().getTime();
  System.out.println("job done");
  return time;
 };
}

3、创建服务端
public class SecureServer {
   public static void main(String[] args) {
     try {
       System.out.println("Loading in security manager");
       RMISecurityManager sManager = new RMISecurityManager();
       System.setSecurityManager(sManager);

       SecureSecondImpl remote = new SecureSecondImpl();
       Naming.rebind ("Dater", remote);
       System.out.println("Object bound to name");
     }
     catch(Exception e) {
       System.out.println("Error occurred at server  "+e.getMessage());
     }
  }
 }

4、创建客户端
   public class SecureTimeClient {
   public static void main(String[] args) {
     try {
       System.out.println("Loading in security manager");
       RMISecurityManager sManager = new RMISecurityManager();
       System.setSecurityManager(sManager);

       SecureSecond sgen = (SecureSecond) Naming.lookup("rmi://localhost/Dater");
       System.out.println("Milliseconds are "+sgen.getMilliSeconds()); 
     }
     catch(Exception e) {
       System.out.println("Problem encountered accessing remote object "+e);
     } 
   }
 }

5、编译以上文件
6、注册RMI
   在“运行”中输入cmd,在你的class目录下执行 start rmiregistry
7、修改权限,
    打开你安装java的目录,找到
    Java\jdk1.6.0_06\jre\lib\security\java.policy文件,用记事本打开
    在grant { }所辖的括号中加一句:
    permission java.security.AllPermission "", "";
8、启动服务端
   在“运行”中输入cmd,在你的class目录下执行
   java -Djava.security.policy=java.policy SecureServer
9、在“运行”中输入cmd,在你的class目录下执行
   java -Djava.security.policy=java.policy SecureTimeClient

分享到:
评论

相关推荐

    RMI会议管理系统代码

    在RMI系统中,Socket通信作为底层传输机制,确保数据在网络中的安全传输。Socket编程为RMI提供了网络连接的基础,使得客户端和服务端能够进行双向通信。同时,由于RMI是基于Java的,因此它还利用了Java的序列化机制...

    分布式程序设计——RMI简单示例

    分布式程序设计是现代软件开发中的一个重要领域,它允许在多台计算机之间共享资源和执行任务,从而...通过深入学习和实践,你可以更好地掌握RMI在分布式系统中的运用,为构建高效、可扩展的Java应用程序打下坚实基础。

    jdk中设计模式

    【设计模式概述】 设计模式是软件工程中经过实践...学习JDK中的设计模式可以让我们更好地理解Java库的设计思想,提升编程技巧,同时也能帮助我们更有效地运用这些模式到自己的项目中,编写出高质量、易于维护的代码。

    jdk1.4 源码,初学必备哦~

    在JDK 1.4中,可能会有像`jconsole`这样的系统监视工具,用于监控JVM的性能和内存使用情况。 通过深入研究JDK 1.4的源码,初学者可以了解Java语言的基础结构、设计模式以及类库的实现原理,这将为后续的高级编程和...

    JDK命令经典讲解全

    在Java开发中,掌握JDK命令是至关重要的,因为它们提供了许多实用的功能,包括编译、运行、调试和管理Java应用程序。本文将深入讲解几个关键的JDK命令,包括`rmic`、`rmid`、`rmiregistry`和`serialver`。 **rmic**...

    JDK命令详细解释,教你如何使用

    在Java开发领域中,深入理解并掌握JDK(Java Development Kit)提供的各种工具和命令是至关重要的。本文将详细介绍几个常用的JDK命令及其使用方法,包括`rmic`、`rmid`、`rmiregistry`、`serialver`以及`jarsigner`...

    wlfullclient.jar 客户端开发包 rmi\jms\ejb3 网络安全人必备

    【wlfullclient.jar 客户端开发包 rmi\jms\ejb3 网络安全人必备】 本文将详细介绍`wlfullclient.jar`客户端开发包,它...理解和熟练运用这些技术,无论是开发者还是网络安全专家,都能在WebLogic环境中发挥重要作用。

    java学习笔记JDK6课件之一

    Java是一种由Sun Microsystems公司开发的面向对象的编程语言,由James Gosling等人于1995年发布,最初是为了编写Star7应用程序。...无论是初学者还是经验丰富的开发者,都能在Java的广阔世界中找到适合自己发展的方向。

    JAVA设计模式(代理模式)

    代理模式是软件设计模式中的一个重要组成部分,它在Java编程中扮演着举足轻重的角色。代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原对象的访问。在实际应用中,代理模式常...

    JavaAPI学习[参照].pdf

    Java API包含在Java Development Kit (JDK) 中,当安装JDK后,即可使用这些API。 Java API按照功能和用途划分为多个包,每个包下又可能有子包,例如: 1. `java.accessibility`:提供接口组件和辅助技术。 2. `...

    JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc

    `jstack` 目前仅在Solaris和Linux的JDK版本中可用。 #### 2. jconsole —— Java Control Console `jconsole` 是基于Java Management Extensions (JMX) 的实时图形化监控工具,它能够展示JVM的实时性能数据和资源...

    2020版Java反射 4 道.pdf

    Java 反射是 Java 语言中一种强大的工具,它允许程序在运行时检查并操作类、接口、对象等的内部细节。在Java中,反射机制主要用于以下几个方面: ...在实际开发中,合理运用这些特性可以解决许多复杂的问题。

    Dubbo面试及答案(上).pdf111

    - **rmi协议**:JDK标准的RMI实现,需要实现Serializable接口,采用阻塞式短连接,适合常规的远程服务调用,但传输效率相对较低,且存在安全漏洞。 - **webservice协议**:基于WebService,提供与原生Web Service的...

    Dubbo 38道面试题及答案.docx

    《Dubbo面试深度解析》 Dubbo作为一款高性能、轻量级的Java RPC框架,其在企业级应用中有着广泛的应用。面试中,对Dubbo的理解和掌握...在实际项目中,还需要根据业务需求灵活运用,以实现高效、稳定的微服务架构。

    java面试宝典资料.pdf

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了在Java面试中脱颖而出,了解和掌握基础的Java知识至关重要。...深入理解并能熟练运用这些知识,将有助于在Java面试中取得成功。

    Java课件及源代码

    Java的发展历程中,经历了多次版本迭代,从JDK1.0到JDK1.5(J2SE5.0),再到后来的Java SE、ME和EE的划分。Java的特点主要包括: 1. **面向对象**:Java是一种纯面向对象的语言,强调对象的封装、继承和多态。它...

    jmc使用说明

    5. -Dcom.sun.management.jmxremote.authenticate=false,关闭JMX连接认证,增加配置的简易性。 6. -XX:+UnlockCommercialFeatures,启用JMC的商业特性。 7. -XX:+FlightRecorder,开启Java飞行记录器,用于记录应用...

    sqoopOperate

    在Eclipse中调试Sqoop,你需要先安装Hadoop和Sqoop的相关环境,包括Java开发环境JDK,Eclipse IDE,Hadoop客户端,以及Sqoop的源代码。确保所有依赖库已正确配置,包括Apache Hadoop的lib目录下的所有jar文件,以及...

Global site tag (gtag.js) - Google Analytics