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

学习JAVA RMI

    博客分类:
  • java
阅读更多

       前段时间已经学了点RMI的知识,当时写了一个小例子,没出什么错误,所以今天在看RMI竟然没留下什么印象,下面写一下我对Java RMI学习的一点心得,以供以后查询,当然我们以一个小例子为基础:

  1,我用的是eclipse3.1.1所以就下载了RMI的插件RMI Plug-in for Eclipse version 2.0,该网站上有个Demo,很不错适合入门。

2,新建一个java project ,新建一个 Remote Interface接口类printcommon,

 

public interface printcommon extends Remote {

 public String print() throws RemoteException;

}

当然在 eclipse下会自动编译,如果在命令窗口内要用javac编译。

3  新建一个 java project ,新建一个类ServerImpl,作为服务器端,实现上面定义的接口。在构建路径的project选项要选上上面接口的project

public class serverImp extends UnicastRemoteObject implements printcommon {
 protected serverImp() throws RemoteException {
  super();             / /这个调用继承类的构造函数一定要写的,因为它用来建立客户端和服务器端的连接。
  }

   public static void main(String[] args) {
  Registry r;
  try {
   r = LocateRegistry.getRegistry();
   r.bind("print",new serverImp());     //这个要注意,左边的参数是个字符串,只是右边新建对象的别名,供客户程序查找远程对象用的,有的人把它当成一个地址了,在两台机子部署的时候,它也不代表地址,有人写了一个博客就是代表地址,误导了我调试了好久。
   System.out.print("server is ready");
  } catch (Exception e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
  
 }

 public String print() throws RemoteException {   //方法的实现
  // TODO 自动生成方法存根
  return "HelloWorld";
 }

}
4  在eclipse下,点击该project的右键,在RMI选项中选择产生stub.class,具体步骤可以看demo.如在在命令行下,先编译后键入rmic ServerImpl。

5. 新建java project,新建一个类,作为客户端。当然也要加入接口的project,

public class client {

  public static void main(String[] args) {
  System.setSecurityManager(new RMISecurityManager());
           try {
    printcommon printer=(printcommon) Naming.lookup("rmi://202.193.86.31:1099/print");//查找在服务器端要调用的对象,格式是rmi://服务器地址/ 对象别名, 端口号可以省略,默认是1099。
   System.out.println(printer.print());
           
           } catch (MalformedURLException e) {
       e.printStackTrace();
   } catch (RemoteException e) {
        e.printStackTrace();
   } catch (NotBoundException e) {
        e.printStackTrace();
   }
 }

}

编译保存。

6,在服务器端  键入 >rmiregistry,在eclipse 下在插件下运行就行了。然后以RMI应用程序的形式运行服务器端的程序,在codebase里写入地址,如果在本地做试验的话,就点击compute from classpath,如果在两台机子上部署的话,这里要自己键入http://地址:8080/example/Hello.jar  ,example是我在Tomcat服务器下一个Web项目名,Hello.jar是接口类printcommon和stub.class的打包,因为客户端访问的是stub.class,所以只需要把它们两打包就行了,可以在project下导出。客户端在查找远程对象时,就会在这个地址下寻找。当然你要开启tomcat。还要设置host地址。设置好后就运行服务器端了。如在命令行下,键入> java -Djava.security.policy=policy.txt  ServerImp。

7,运行客户端,以RMI应用程序运行,在对话框内要产生安全文件。运行OK了。在命令行键入> java -Djava.security.policy=policy.txt CalculatorClient

改变端口号: java.rmi.registry.LocateRegistry.createRegistry(2005);

分享到:
评论

相关推荐

    java RMI技术实现的网络聊天室

    Java RMI(Remote Method Invocation)技术是Java平台中用于分布式计算的一种机制,它允许一个Java对象调用远程...通过这个项目,开发者可以学习到如何使用RMI创建分布式应用,以及如何处理并发和网络通信等问题。

    java_rmi.rar_RMI java_java.rmi

    学习和理解Java RMI对于开发分布式Java应用至关重要,它可以帮助你构建可扩展、高性能的应用程序,尤其适用于服务器集群和云环境。通过实践提供的"rmi"代码示例,你可以深入理解RMI的工作原理,并掌握如何在实际项目...

    编程语言JavaRMI入门教程.pdf

    本文档是关于Java远程方法调用...整体而言,这份教程为Java RMI的初学者提供了一个系统的学习路径,并且详细解释了Java RMI工作原理和组件构成。尽管教程的内容较旧,对于学习Java RMI的基本知识和概念仍有很大的帮助。

    RMI.rar_Java RMI_java.rmi_java.rmi.Remot_remote

    Java RMI(远程方法调用)是Java编程语言中的一项核心技术,自JDK 1.1版本起就被引入...虽然现代的Java框架如Spring、EJB等提供了更高级别的分布式服务,但理解RMI的基本原理对于深入学习Java分布式系统仍然是必要的。

    java rmi远程调用

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

    Getting Started Using Java RMI 文章使用源代码

    学习Java RMI时,你需要理解以下关键概念: 1. **远程接口**:这是定义了远程方法的接口,所有远程方法都必须标记为`remote`和`throws java.rmi.RemoteException`。 2. **远程对象**:实现了远程接口的类,它们的...

    java rmi HelloWorld版(源码)

    这个"java rmi HelloWorld版(源码)"的压缩包文件提供了一个简单的RMI应用示例,帮助开发者了解和学习RMI的基本原理和使用。 RMI的核心概念包括: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口...

    JavaRMI

    学习Java RMI需要理解Java的序列化机制、多线程以及网络编程基础。 参考链接:[ITEE博客 - TianmaoTalk](https://tianmaotalk.iteye.com/blog/852330) 在提供的压缩包`RMITest`中,可能包含了实现RMI的示例代码,...

    Rmi.rar_Java RMI_RMI java_java RMI 线程_rmi

    这个教程“Rmi.rar”显然包含了关于如何使用Java RMI实现不同方式的实例,这些实例可能是精心设计和测试的,旨在帮助学习者深入理解RMI的工作原理。 RMI的核心概念包括: 1. **远程接口(Remote Interface)**:...

    Java RMI 可运行实例

    通过分析这些文件,你可以学习到如何创建、配置和运行一个完整的RMI应用程序,这对于理解和应用Java的分布式计算能力非常有帮助。同时,这也是一个很好的实践项目,可以帮助你加深对RMI工作原理的理解。

    JAVARMI实例[文].pdf

    Java RMI,全称为Java Remote Method Invocation,是Java平台中用于远程对象调用的技术。它允许Java对象在不同的Java虚拟机之间进行通信,仿佛它们在同一个...尽管如此,了解RMI仍然是学习Java分布式计算的重要一环。

    rmi.rar_Java RMI_RMI source code_java RMI simple_rmi

    通过“rmi.rar”中的源代码,你可以学习如何定义和实现远程接口,创建和启动服务器,以及编写客户端代码进行远程调用。此外,还可能涉及到异常处理、安全配置、RMI优化等高级话题。通过深入理解并实践这些示例,你将...

    rmi.rar_Java RMI_RMI java_RMI policy.all_rmi

    描述中提到的"java rmi例子"表明其中可能包含了一个或多个实际的RMI应用实例,这对于学习和理解RMI的工作原理非常有帮助。 首先,让我们详细了解Java RMI的核心概念和组件: 1. **远程接口(Remote Interface)**...

    rmi.zip_Java RMI_java rmi网络_java源代码 RMI

    学习和理解Java RMI,你需要掌握如何创建远程接口和实现,如何启动RMI服务器,如何在客户端进行远程对象的查找和调用,以及如何处理可能出现的网络异常。此外,对于序列化和网络通信的基础知识也是必不可少的。通过...

    java RMI demo

    通过"java RMI demo"的学习,开发者可以掌握如何创建、注册远程对象,以及如何在客户端进行调用。理解RMI的工作原理和配置,对于开发分布式Java应用至关重要。同时,这也涉及到了网络编程、多线程和异常处理等相关...

    分布式程序java 实验名称 基于Java RMI的C/S编程实验

    在"基于Java RMI的C/S编程实验"中,学生会学习如何创建远程接口,注册远程对象,以及如何在客户端透明地调用远程方法。 实验中包含的两个文件名 "HelloSwing" 和 "CityInformation" 提示我们,实验可能涉及到图形...

    java_rmi.zip

    Java RMI(Remote Method Invocation,远程...使用这个“java_rmi.zip”中的资源,你可以学习如何设置RMI环境,编写远程接口和实现,以及创建和调用远程对象。同时,了解相关的最佳实践和安全注意事项也是十分重要的。

    一个简单的RMI例子Java源代码,用于学习理解RMI

    学习这个简单的RMI示例,可以帮助你了解如何在Java中设置和使用RMI,包括创建远程接口,实现远程对象,注册到RMI注册表,以及在客户端进行远程方法调用。这将为你构建更复杂的分布式系统打下基础。

    java 远程方法调用(java rmi)

    Java 远程方法调用(Java RMI,Remote Method Invocation)是Java平台提供的一种用于构建分布式应用程序的...学习和理解Java RMI,可以帮助开发者构建可扩展的、跨网络的分布式应用程序,是Java开发者必备的一项技能。

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

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

Global site tag (gtag.js) - Google Analytics