一、创建远程服务

1、创建 Remote 接口,MyRemote.java

import java.rmi.*;

public interface MyRemote extends Remote{

    public String sayHello() throws RemoteException;
}

2、实现 Remote,MyRemoteImpl.java

import java.rmi.*;
import java.rmi.server.*; public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{ public String sayHello(){
return "Server says,'Hey'";
}
public MyRemoteImpl() throws RemoteException{} public static void main(String[] args){
try{
MyRemote service = new MyRemoteImpl();
Naming.rebind("rmi://localhost:1099/Hello",service);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}

3、编译。在以上 java 文件所在目录,按住 shift 键,右键,选择「在此处打开命令窗口」,执行

javac *.java

4、用 rmic 产生 stub。

rmic MyRemoteImpl

5、启动 RMI registry。

rmiregistry

6、启动远程服务。另外打开一个命令窗口,执行

java MyRemoteImpl

二、客户端调用远程方法

1、把第一步的 MyRemote.class 和 MyRemoteImpl_Stub.class 拷贝到客户端文件所在目录。

2、编写客户端代码 MyRemoteClient.java。

import java.rmi.*;

public class MyRemoteClient
{
public static void main(String[] args)
{
new MyRemoteClient().go();
} public void go()
{
try
{
MyRemote service=(MyRemote)Naming.lookup("rmi://localhost:1099/Hello");
String s=service.sayHello();
System.out.println(s);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}

3、编译

javac *.java

4、运行客户端

java MyRemoteClient

参考资料:

1. Kathy Sierra. Bert Bates. 《Head First Java》中文版

Java RMI 简单示例的更多相关文章

  1. Java RMI简单例子HelloWorld

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

  2. Java RMI 简单实现

    提供远端访问的时候,我们首先需要定义远端能够访问哪些东西,在Java中,定义这类接口需要实现Remote接口 public interface Business extends Remote{ pub ...

  3. hdfs的java接口简单示例

    public class HDFSDemo { private FileSystem fs = null; @Before public void init() throws IOException, ...

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

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

  5. Java RMI 入门指南

    开通博客也有好些天了,一直没有时间静下心来写博文,今天我就把两年前整理的一篇关于JAVA RMI入门级文章贴出来,供有这方面需要的同学们参考学习. RMI 相关知识 RMI全称是Remote Meth ...

  6. java RMI入门指南

    感觉这篇文章不错,直接转了 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体如今它强大的开发分布式网络应用的能力上,是纯J ...

  7. JAVA RMI调用实战学习

    JAVA RMI 实战示例,参考网址: http://diaoge.iteye.com/blog/245170 这个示例很清楚地阐释了rmi的使用方法, 但示例都是放在一起的, 实际使用中我们可能会将 ...

  8. 可运行的Java RMI示例和踩坑总结

    简述 资料参考: https://docs.oracle.com/javase/tutorial/rmi/overview.html https://blog.csdn.net/bigtree_372 ...

  9. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

随机推荐

  1. cordova 入门

    1. npm install -g cordova On Windows, npm can usually be found at C:\Users\username\AppData\Roaming\ ...

  2. lock,Monitor,Mutex的区别

    lock和Monitor的区别 一.lock的底层本身是Monitor来实现的,所以Monitor可以实现lock的所有功能. 二.Monitor有TryEnter的功能,可以防止出现死锁的问题,lo ...

  3. 004-集成maven和Spring boot的profile功能打包

    参考地址:https://blog.csdn.net/lihe2008125/article/details/50443491 一.主要目标 1.通过mvn在命令行中打包时,可以指定相应的profil ...

  4. 22.解决 eclipse 与 AS 共用 SDK 导致 eclipse ADT 无法使用的问题

    相信很多同学在从eclipse 转 AS 都会遇到这个问题,因为方便所以共用了一个sdk 目录,但是AS 会主动更新sdk,然而手贱的跟新了一夜,再打开eclipse的时候瞬间呆滞了,这一夜发生什么了 ...

  5. request.getInputStream() 流只能读取一次问题

    问题: 一次开发过程中同事在 sptring interceptor 中获取 request body 中值,以对数据的校验和预处理等操作 .导致之后spring 在读取request body 值做 ...

  6. PAT 1049 Counting Ones [难]

    1049 Counting Ones (30 分) The task is simple: given any positive integer N, you are supposed to coun ...

  7. WEB前端研发工程师编程能力成长之路(2)

    四.[入微] 最强解决方案.你能够走在需求的前面,将当前需求里有的.没有直接提出来的.现在暂时没有但将来可能有的等等,及前端编程潜规则等各个方方面面都综合考虑,给出最优方案.以一招胜万招. var s ...

  8. PKU 2823 Sliding Window(线段树||RMQ||单调队列)

    题目大意:原题链接(定长区间求最值) 给定长为n的数组,求出每k个数之间的最小/大值. 解法一:线段树 segtree节点存储区间的最小/大值 Query_min(int p,int l,int r, ...

  9. JQuery如何实现双击事件时不触发单击事件,解决鼠标单双击冲突问题

    在jQuery的事件绑定中,如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblcli ...

  10. mybatis-3 Dynamic SQL

    Dynamic SQL One of the most powerful features of MyBatis has always been its Dynamic SQL capabilitie ...