1. import java.rmi.*;
  2.  
  3. public interface Hello extends Remote {
  4. public String getGreeting() throws RemoteException;
  5. }
  1. import java.rmi.*;
  2. import java.rmi.server.*;
  3.  
  4. public class HelloImpl extends UnicastRemoteObject implements Hello {
  5.  
  6. public HelloImpl() throws RemoteException {
  7. // No action needed here.
  8. }
  9.  
  10. public String getGreeting() throws RemoteException {
  11. return ("Hello there!");
  12. }
  13. }
  1. import java.rmi.*;
  2.  
  3. public class HelloServer {
  4. private static final String HOST = "localhost";
  5.  
  6. public static void main(String[] args) throws Exception {
  7. // Create a reference to an
  8. // implementation object
  9. HelloImpl temp = new HelloImpl();
  10. // Create the string URL holding the
  11. // object's name
  12. String rmiObjectName = "rmi://" + HOST + "/Hello";
  13. // (Could omit host name here, since 'localhost'
  14. // would be assumed by default.)
  15. // 'Bind' the object reference to the name
  16. Naming.rebind(rmiObjectName, temp);
  17. // Display a message so that we know the process
  18. // has been completed
  19. System.out.println("Binding complete…\n");
  20. }
  21. }
  1. import java.rmi.*;
  2.  
  3. public class HelloClient {
  4. private static final String HOST = "localhost";
  5.  
  6. public static void main(String[] args) {
  7. try {
  8. // Obtain a reference to the object from the
  9. // registry and typecast it into the appropriate
  10. // type
  11. Hello greeting = (Hello) Naming.lookup("rmi://" + HOST + "/Hello");
  12. // Use the above reference to invoke the remote
  13. // object's method
  14. System.out.println("Message received: " + greeting.getGreeting());
  15. } catch (ConnectException conEx) {
  16. System.out.println("Unable to connect to server!");
  17. System.exit();
  18. } catch (Exception ex) {
  19. ex.printStackTrace();
  20. System.exit();
  21. }
  22. }
  23. }

编译运行用到的命令

  1. note
  2.  
  3. javac Hello.java
  4. javac HelloImpl.java
  5. javac HelloServer.java
  6. javac HelloClient.java
  7.  
  8. //This would generate both a stub fi le and a skeleton fi le. However, this stage is no
  9. //longer required
  10. rmic HelloImpl
  11.  
  12. //Starting the RMI registry
  13. rmiregistry
  14.  
  15. //start server
  16. java HelloServer
  17.  
  18. //start client
  19. java HelloClient
  20.  
  21. //result
  22. "Hello there!"

java RMI的更多相关文章

  1. Exception thrown by the agent : java.rmi.server.ExportException: Port already in use

    今天有个应用一直起不来,感觉配置都对啊,奇了怪了.看日志发现如下: STATUS | wrapper | 2017/01/04 08:09:31 | Launching a JVM...INFO | ...

  2. Java RMI之HelloWorld篇

    Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方 ...

  3. 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099;

     错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099; nested exception is:  java ...

  4. JAVA RMI 实例

    下面我将介绍一个完整的实例,让初学者能快速体验RMI的功用. 分为以下四个步骤 1. 创建远程接口及声明远程方法(HelloInterface.java)2. 实现远程接口及远程方法(继承Unicas ...

  5. JAVA RMI例子

    RMI 是java语言的一个RPC框架,本文给出基础例子如下: 1.实现接口: public interface ICalc extends Remote { public int add(int p ...

  6. java.rmi.NoSuchObjectException: no such object in table

    jmx链接的时候,最简单的例子都行不通,郁闷,出现了: 参考:http://reiz6153.blog.163.com/blog/static/401089152009442723208/ 代码: M ...

  7. 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法

    一.问题描述 今天一来公司,在IntelliJ IDEA 中启动Tomcat服务器时就出现了如下图所示的错误:

  8. Java RMI 介绍和例子以及Spring对RMI支持的实际应用实例

    RMI 相关知识 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网 ...

  9. Java学习笔记(十六)——Java RMI

    [前面的话] 最近过的好舒服,每天过的感觉很充实,一些生活和工作的技巧注意了就会发现,其实生活也是可以过的如此的有滋有味,满足现在的状况,并且感觉很幸福. 学习java RMI的原因是最近在使用dub ...

  10. JAVA RMI helloworld入门

    Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方 ...

随机推荐

  1. HttpSession--会话

  2. LoadRunner字符串与参数的操作及转换技巧

    刚开始学LR时,经常搞不清楚变量和参数的区别与用法,最近在一次脚本编写中,整理出来的一些小技巧,与大家一起分享. //字符串复制 strcpy(str,"Hello ") ; // ...

  3. js:数据结构笔记9--二叉树

    树:以分层的方式存储数据:节点:根节点,子节点,父节点,叶子节点(没有任何子节点的节点):层:根节点开始0层: 二叉树:每个节点子节点不超过两个:查找快(比链表),添加,删除快(比数组): BST:二 ...

  4. logback 配置详解【讲解较全的博客网站】

    http://blog.csdn.net/haidage/article/category/812478 详解(一)http://blog.csdn.net/haidage/article/detai ...

  5. http://www.cnblogs.com/yjmyzz/p/3941043.html

    http://www.cnblogs.com/yjmyzz/p/3941043.html

  6. 排序+逆向思维 ACdream 1205 Disappeared Block

    题目传送门 /* 从大到小排序,逆向思维,从最后开始考虑,无后向性 每找到一个没被淹没的,对它左右的楼层查询是否它是孤立的,若是++,若不是-- 复杂度 O(n + m),还以为 O(n^2)吓得写了 ...

  7. Task加入取消功能

      参考:http://www.cnblogs.com/scy251147/archive/2013/01/04/2843875.html static void TaskWithCancellati ...

  8. ZOJ 3805 (树形DP)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5337 题目大意:方块连接,呈树形.每个方块有两种接法,一种接在父块 ...

  9. svg―Raphael.js Library

    Raphael是一个用于在网页中绘制矢量图形的Javascript库,它使用SVG W3C推荐标准和VML作为创建图形的基础,可以通过JavaScript操作DOM来轻松创建出各种复杂的柱状图.饼图. ...

  10. TYVJ P1048 田忌赛马 Label:dp

    描述     中国古代的历史故事“田忌赛马”是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱.现在每匹马的速 ...