java分布式对象_JAVA基础之分布式对象
发布日期:2022-02-18 13:19:49 浏览次数:7 分类:技术文章

本文共 1694 字,大约阅读时间需要 5 分钟。

RMI编程模型

1)接口与实现import java.rmi.Remote;

import java.rmi.RemoteException;

public interface Warehouse extends Remote {

double getPrice(String description) throws RemoteException;

}/**

* Unicast产生单一对象ip地址和端口

*/

public class WarehouseImpl extends UnicastRemoteObject implements Warehouse {

private Map prices;

protected WarehouseImpl() throws RemoteException {

prices = new HashMap();

prices.put("Blackwell Toaster", 24.95);

prices.put("ZapXpress Microwave Oven", 24.95);

//如果不extends UnicastRemoteObject

//调用静态方法实例化

//        UnicastRemoteObject.exportObject(this, 0);

}

@Override

public double getPrice(String description) throws RemoteException {

Double price = prices.get(description);

return price == null ? 0 : price;

}

}

2)RMI注册表public class WarehouseServer {

public static void main(String[] args) throws RemoteException, NamingException {

System.out.println("Constructing server implementiong");

WarehouseImpl warehouse = new WarehouseImpl();

System.out.println("Bingding server implementiong to registry");

Context context = new InitialContext();

context.bind("rmi:warehouse", warehouse);

System.out.println("Waiting for invocations from clients");

}

}public class WarehouseClient {

public static void main(String[] args) throws NamingException, RemoteException {

Context context = new InitialContext();

System.out.println("RMI registry bindings:");

Enumeration e = context.list("rmi://localhost/");

while (e.hasMoreElements()) {

System.out.println(e.nextElement().getName());

}

String url = "rmi://localhost/warehouse";

Warehouse warehouse = (Warehouse) context.lookup(url);

String descr = "Blackwell Toaster";

double price = warehouse.getPrice(url);

System.out.println(descr + ":" + price);

}

}

69b5874ce6c08b11f0916f72b510c96e.png

转载地址:https://blog.csdn.net/weixin_28926205/article/details/114620677 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java exception关系,Java Exception 在超类和子类间的关系
下一篇:java获取引用名_在运行时Java中获取方法引用的名称是否可能(如何)?[复制品]

发表评论

最新留言

很好
[***.229.124.182]2024年03月21日 01时04分22秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

php taglib.php,thinkphp5 taglib自定义标签教程 2019-04-21
java常用包类 array,Java中的StringBuffer和数组Arrays以及常用类型的包装类 2019-04-21
ctf常见php,CTF中常见的PHP伪协议 2019-04-21
php语言冒泡法,PHP 冒泡排序法 2019-04-21
php如何数组去重复,PHP如何去除数组重复元素? 2019-04-21
java转换ab的值,查看新闻/公告--[整理]Java将AB1234形式的16进制字符串转换为10进制数值,考虑字节序的影响.... 2019-04-21
ui php h5,画出自己的UI组件的详情 2019-04-21
linux服务文件编写,linux编写systemd下服务脚本 2019-04-21
hdfs linux 目录是否存在,Linux中判断hdfs文件是否存在 2019-04-21
linux学习需要什么基础,学linux需要什么基础? 2019-04-21
linux vim编辑kconfig 无法wq,Linux-4.9.2内核在mini2440上的移植(三)——编译环境测试... 2019-04-21
linux 强制结束任务管理器,结束拒绝访问的进程 cmd下结束进程 强行结束进程 2019-04-21
高斯勒让德在c语言中的程序,c语言:用递归方法编写程序,求n阶勒让德多项式的值... 2019-04-21
c语言单片机电子时钟,新人求个51单片机的电子时钟汇编语言(C语言的还没学到)... 2019-04-21
c++语言文件流,C++文件流 2019-04-21
android 动态毛玻璃,Android毛玻璃背景效果简单实现代码 2019-04-21
android 按钮提示,的Android按钮工具提示 2019-04-21
iphone通讯录 android,3个方法,教你如何快速而又有效的将联系人从iPhone转移到安卓... 2019-04-21
android horizontalscrollview 滑动事件,ScrollView的滑动监听(以HorizontalScrollView为例) 2019-04-21
win7自定义html为桌面,Win7系统自定义桌面主题的方法 2019-04-21