发表于: 2017-08-13 23:45:16
1 1079
今天完成的事情:
跑通RMI例子
结构:
红色的原因是给师弟测试了一下svn相关的东西,然后发现还不原了....不过不影响使用,就看着不舒服而已
客户端:
package client;
import service.IHello;
import java.rmi.Naming;
/**
* Created by liujm on 2017/8/12.
*/
public class HelloClient {
public static void main(String args[]) {
try {
// 在RMI服务注册表中查找名称为RHello的对象,并调用其上的方法
IHello rhello = (IHello) Naming.lookup("rmi://127.0.0.1:8888/RHello");System.out.println(rhello.sayHello("liujiaming"));
//输出两数之和
System.out.println(rhello.sum(123, 1000));
} catch (Exception e) {
e.printStackTrace();
}
}
}
package client;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* Created by liujm on 2017/8/12.
*/
public interface IHello extends Remote {
public String sayHello(String name) throws RemoteException;
public int sum(int a, int b)throws RemoteException;
}
服务端:
package service;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
/**
* Created by liujm on 2017/8/12.
*/
public class HelloImpl extends UnicastRemoteObject implements IHello{
private static final long serialVersionUID = 1961558474342609777L;
public HelloImpl()throws RemoteException {
super();
}
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
@Override
public int sum(int a, int b) {
return a+b;
}
}
package service;
import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
/**
* Created by liujm on 2017/8/12.
*/
public class HelloServer {
public static void main(String args[]) {
try {
//创建一个远程对象
IHello rhello = new HelloImpl();
//生成远程对象注册表Registry的实例,并指定端口为8888(默认端口是1099)
LocateRegistry.createRegistry(8888);
//把远程对象注册到RMI注册服务器上,并命名为RHello
//绑定的URL标准格式为:rmi://host:port/name(协议名可以省略,下面两种写法都可以)
Naming.bind("rmi://127.0.0.1:8888/RHello", rhello);
System.out.println(">>INFO:远程IHello对象绑定成功!");
} catch (RemoteException e) {
System.out.println("创建远程对象发生异常!");
e.printStackTrace();
} catch (AlreadyBoundException e) {
System.out.println("发生重复绑定对象异常!");
e.printStackTrace();
} catch (MalformedURLException e) {
System.out.println("发生URL畸形异常!");
e.printStackTrace();
}}
}
package service;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* Created by liujm on 2017/8/12.
*/
public interface IHello extends Remote {
public String sayHello(String name) throws RemoteException;
public int sum(int a, int b)throws RemoteException;
}
首先运行服务端的helloserver,显示运行成功
然后进入客户端调用
OK,下一个
明天计划的事情:
在原来的WEB中调用Service。
遇到的问题:
无
收获:
学会简单配置RMI
评论