您的位置:首页 > 其它

HeadFirst设计模式之RMI介绍

2016-03-11 14:16 316 查看
一、使用步骤

1.generate stubs and skeletons:Run rmic on the remote implementation class

如:D:\Workspaces\MyEclipse10\HeadFirstDesignPattern\bin>rmic headfirst.designpatterns.rmi.MyRemoteImpl

2.Bring up a terminal and start the rmiregistry

例如:D:\Workspaces\MyEclipse10\HeadFirstDesignPattern\bin>rmiregistry

3.start the service:Bring up another terminal and start your service

在MyEclipse中执行service的main方法

4.执行client的main方法

二、代码实现

1.

package headfirst.designpatterns.rmi;

import java.rmi.*;
public interface MyRemote extends Remote {
public String sayHello() throws RemoteException;
}


2.

package headfirst.designpatterns.rmi;

import java.rmi.*;
import java.rmi.server.*;

//Extending UnicastRemoteObject is the
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {
//Be sure arguments and return values are primitives or Serializable
public String sayHello() {
return "Server says, ‘Hey’";
}

public MyRemoteImpl() throws RemoteException {}

public static void main(String[] args) {
try {
MyRemote service = new MyRemoteImpl();
Naming.rebind("RemoteHello", service);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}


3.

package headfirst.designpatterns.rmi;

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://127.0.0.1/RemoteHello");
String s = service.sayHello(); System.out.println(s);
}catch (Exception ex) {
ex.printStackTrace();
}
}
}


三、结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: