浅谈Java分布式计算
作者:网络转载 发布时间:[ 2013/3/28 10:12:37 ] 推荐标签:
业务实现
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
/**
*
* MyRemoteImpl.java
*
* 功 能: TODO
* 类 名: MyRemoteImpl.java
*
* ver ?更日 角色 担当者 ?更内容
* ──────────────────────────────────────────────
* V1.00 2013-3-19 模块 苏若年 初版
*
* Copyright (c) 2013 dennisit corporation All Rights Reserved.
*
* Email:<a href="mailto:DennisIT@163.com">发送邮件</a>
*
* 为了要成为远程服务对象,对象必须要有与远程有关的功能,其中简单的方法是继承UnicastRemoteObject
* (来自java.rmi.server)以让这个父类处理这些工作
*
*/
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{
/**
* 父类的构造函数声明了异常,所有你必须写出构造函数,因为它代表你的构造函数会调用有风险的程序代码
*
* UnicastRemoteObject有个小问题,它的构造函数会抛出RemoteException.处理它的方式是
* 对自己的实现声明一个构造,如此才会有地方可以声明出RemoteException.当类被初始化的时候,父类
* 的构造函数一定会被调用,如果父类的构造函数抛出异常,我们也必须声明的自定义的构造函数会抛出异常
* @throws RemoteException
*/
protected MyRemoteImpl() throws RemoteException {
}
/**
* 实现出接口所有的方法,但无需声明RemoteException
*/
@Override
public String sayHello(){
return "server says, rmi hello world !";
}
public static void main(String[] args) {
try {
/**
* 我们已经有了远程服务,还必须要让远程用户存取,这可以通过将它初始化并加进RMI Registry
* (它一定要运行起来,不然此程序会失败).当注册对象时,RMI系统会把stub加到registry中,
* 因为这是客户端所需要的.使用java.rmi.Naming的rebind()来注册服务
*/
MyRemote service = new MyRemoteImpl();
/**
* 创建出远程对象,然后使用静态的Naming.rebind()来产生关联,所注册的名称会提供客户端查询
*/
Naming.rebind("Remote Hello World", service);
} catch (Exception e) {
e.printStackTrace();
}
}
}
客户端代码
import java.rmi.Naming;
/**
*
* MyRemoteClient.java
*
* 功 能: TODO
* 类 名: MyRemoteClient.java
*
* ver ?更日 角色 担当者 ?更内容
* ──────────────────────────────────────────────
* V1.00 2013-3-19 模块 苏若年 初版
*
* Copyright (c) 2013 dennisit corporation All Rights Reserved.
*
* Email:<a href=mailto:DennisIT@163.com>发送邮件</a>
*
*/
public class MyRemoteClient {
public void exec(){
try {
/**
* 客户端必须取得stub对象,因为客户端必须要调用它的方法.这得靠RMI registry了.客户端会像查询电话
* 簿一样地搜索,找出上面有相符的名称的服务.
* 客户端查询RMIRegistry,返回stub对象
* Naming.lookup("rmi://127.0.0.1/Remote Hello World");
* 参数说明
* rmi://127.0.0.1/Remote Hello World
* 127.0.0.1表示主机名称或主机IP地址
* Remote Hello World必须要跟注册的名称一样
*
*/
MyRemote service = (MyRemote)Naming.lookup("rmi://127.0.0.1/Remote Hello World");
String tmp = service.sayHello();
System.out.println(tmp);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new MyRemoteClient().exec();
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11