Java RMI 简单示例
一、创建远程服务
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 简单示例的更多相关文章
- Java RMI简单例子HelloWorld
Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方 ...
- Java RMI 简单实现
提供远端访问的时候,我们首先需要定义远端能够访问哪些东西,在Java中,定义这类接口需要实现Remote接口 public interface Business extends Remote{ pub ...
- hdfs的java接口简单示例
public class HDFSDemo { private FileSystem fs = null; @Before public void init() throws IOException, ...
- Java RMI 介绍和例子以及Spring对RMI支持的实际应用实例
RMI 相关知识 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网 ...
- Java RMI 入门指南
开通博客也有好些天了,一直没有时间静下心来写博文,今天我就把两年前整理的一篇关于JAVA RMI入门级文章贴出来,供有这方面需要的同学们参考学习. RMI 相关知识 RMI全称是Remote Meth ...
- java RMI入门指南
感觉这篇文章不错,直接转了 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体如今它强大的开发分布式网络应用的能力上,是纯J ...
- JAVA RMI调用实战学习
JAVA RMI 实战示例,参考网址: http://diaoge.iteye.com/blog/245170 这个示例很清楚地阐释了rmi的使用方法, 但示例都是放在一起的, 实际使用中我们可能会将 ...
- 可运行的Java RMI示例和踩坑总结
简述 资料参考: https://docs.oracle.com/javase/tutorial/rmi/overview.html https://blog.csdn.net/bigtree_372 ...
- JAVA使用jdbc连接MYSQL简单示例
以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...
随机推荐
- 【使用时发生的意外】file is not sufficiently replicated yet
异常堆栈如下: -- ::, ERROR [com.ultrapower.secsight.util.HdfsUtil] - 追加写入文件失败! org.apache.hadoop.ipc.Remot ...
- (0.2.6)Mysql安装——编译安装
(0.2.6)Mysql安装——编译安装 待完善
- Java集合—Map
简介 Map用户保存具有映射关系的数据,因此Map集合里保存着两组数,一组值用户保存Map里的key,另一组值用户保存Map里的value,key和value都可以是任何引用类型的数据.Map的key ...
- shiro 密码如何验证?
Authentication:身份认证/登录,验证用户是不是拥有相应的身份. Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情. 这里我们主要 ...
- Android如何定制一个下拉刷新,上滑加载更多的容器
前言 下拉刷新和上滑加载更多,是一种比较常用的列表数据交互方式. android提供了原生的下拉刷新容器 SwipeRefreshLayout,可惜样式不能定制. 于是打算自己实现一个专用的.但是下拉 ...
- Java GC随笔
最近发生了一些C#程序运行时的一些问题,发现是GC导致的问题,然后稍微研究了一下GC,因为知道Java的GC要比.NET稍微复杂一点,所以我觉得要是能弄懂Java的GC的原理,对.NET的GC的理解也 ...
- git 提交和下载代码
在github下需先 New repository 下载:进入程序工程目录下 如 cd f: cd ./Program\ Files/eclipse/workspace/IMoocMusic/ git ...
- zookeeper 监听事件 NodeCacheListener
zookeeper 监听事件 NodeCacheListener NodeCacheListener一次注册,每次监听,但是监听不到操作类型,不知道是增加?删除?还是修改? 1.测试类: packag ...
- C++MFC之picture control控件铺满图片
UpdateData(true); //更新路径公共变量 CString m_path = m_edit1.GetString(); if(m_path=="") ...
- 浅谈boost.variant的几种访问方式
前言 variant类型在C++14并没有加入,在cppreference网站上可以看到该类型将会在C++17加入,若想在不支持C++17的编译器上使用variant类型,我们可以通过boost的va ...