• User类

         注意:需要实现序列化

 package study.rmi.server;

 import java.io.Serializable;

 public class User implements Serializable {

     /**
*
*/
private static final long serialVersionUID = 1L; private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }

  • 接口类
 package study.rmi.server;

 import java.rmi.Remote;
import java.rmi.RemoteException; public interface HelloRemote extends Remote{ String sayHello(User user) throws RemoteException;
}

  • 接口实现类
 package study.rmi.server;

 import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject; public class HelloRemoteImpl extends UnicastRemoteObject implements HelloRemote { private static final long serialVersionUID = 1L; protected HelloRemoteImpl() throws RemoteException {
super();
} @Override
public String sayHello(User user) throws RemoteException {
return "hello," + user.getName();
} }

  • rmi服务端类
 package study.rmi.server;

 import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry; public class RemoteServer { public static void main(String[] args) {
try {
LocateRegistry.createRegistry(6666);
HelloRemote server = new HelloRemoteImpl();
Naming.rebind("//127.0.0.1:6666/HelloRemote", server);
System.out.println("服务端启动");
} catch (RemoteException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}
} }

  • 客户端类
 package study.rmi.client;

 import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import study.rmi.server.HelloRemote;
import study.rmi.server.User; public class RMIClient { public static void main(String[] args) {
String url = "//127.0.0.1:6666/HelloRemote";
try {
HelloRemote helloRemote = (HelloRemote) Naming.lookup(url);
User user = new User();
user.setName("zs");
System.out.println(helloRemote.sayHello(user));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
} }
}

可以看看下面介绍java rmi的文章:

http://haolloyin.blog.51cto.com/1177454/332426/

http://www.blogjava.net/orangelizq/archive/2007/12/01/164541.html

简单rmi示例的更多相关文章

  1. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  2. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  3. hadoop环境安装及简单Map-Reduce示例

    说明:这篇博客来自我的csdn博客,http://blog.csdn.net/lxxgreat/article/details/7753511 一.参考书:<hadoop权威指南--第二版(中文 ...

  4. EasyHook远注简单监控示例 z

    http://www.csdn 123.com/html/itweb/20130827/83559_83558_83544.htm 免费开源库EasyHook(inline hook),下面是下载地址 ...

  5. Web Service简单入门示例

    Web Service简单入门示例     我们一般实现Web Service的方法有非常多种.当中我主要使用了CXF Apache插件和Axis 2两种. Web Service是应用服务商为了解决 ...

  6. Ext简单demo示例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  7. GDAL中MEM格式的简单使用示例

    GDAL库中提供了一种内存文件格式--MEM.如何使用MEM文件格式,主要有两种,一种是通过别的文件使用CreateCopy方法来创建一个MEM:另外一种是图像数据都已经存储在内存中了,然后使用内存数 ...

  8. html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例

    这篇文章主要介绍了html5本地存储的localstorage .本地数据库.sessionStorage简单使用示例,需要的朋友可以参考下 html5的一个非常cool的功能,就是web stora ...

  9. hydra简单使用示例

    本内容为网上收集整理,仅作为备忘!! hydra简单使用示例: 破解https: # hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https ...

随机推荐

  1. asp.net 将数据导成Excel文件

    思路:和word红头文件一样,采用xml格式的模板文件,再替换模板中设置好的标签就可以了.参考网址:http://www.cnblogs.com/tzy080112/p/3413938.html pu ...

  2. 由于html元素加载导致的问题

    js中要求执行的事件是在完全加载完,但由于本地环境测试一直没发现出问题,在上线后由于网络延迟导致元素加载慢,而事件执行完,没达到预期目标. 这时就需要用到属性 readyState readyStat ...

  3. elasticsearch 不同集群数据同步

    采用快照方式 1.源集群采用NFS,注意权限 2.共享目录完成后,在所有ES服务器上挂载为同一目录 3.创建快照仓库 put _snapshot/my_backup{ "type" ...

  4. cetnos 7 增加新的硬盘

    fdisk -l 查看新的硬盘是否挂载 如没有挂载 ls /sys/class/scsi_host/ 查看设备列表 echo "- - - " > /sys/class/sc ...

  5. Serializers序列化组件

    Django的序列化方法 .values 序列化结果 class BooksView(View): def get(self, request): book_list = Book.objects.v ...

  6. PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享

    第一次安装Oracle,装在虚拟机中,用PL/SQL Dev连接远程数据库的时候老是弹出空白提示框,网上找了很久,解决方法也很多,可是就是没法解决我这种情况的. 出现这种问题,解决方法大概有这几种: ...

  7. php中bootstrap框架.popover弹出框,鼠标移动到上面自动显示,离开自动消失

    <div rel="name"></div> <script> $(function(){//显示弹出框 $("[rel=name]& ...

  8. HDU 6214 Smallest Minimum Cut(最少边最小割)

    Problem Description Consider a network G=(V,E) with source s and sink t. An s-t cut is a partition o ...

  9. XML文件的小结

    1.Layer-list <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:an ...

  10. What's the #pragma pack

    What's the #pragma pack 这是一个预编译宏, 目前我对于它的认识是: 告诉编译器对于某些结构进行字节对齐使用的. 目前阶段,几乎不使用, 只是见到了, 有疑问, 先简单学习记录一 ...