1 RMI 简介
RMI ,远程方法调用(Remote Method Invocation) 是Enterprise javaBeans的支柱,是建立分布式java应用程序的方便途径。RMI 是非常容易使用的,但是它也是非常强大的。RMI是基于接口,RMI 构架记入一个重要的原理:定义接口定义即可的具体实现是分开的,也就是面向接口编程。
2 RMI 的主要步骤:
(1) 创建远程接口及声明远程方法
(2) 实现远程接口及远程方法 (需要继承UnicastRemoteObject类)
(3) 启动RMI注解服务,并注册远程对象
(4) 客服端查找远程对象,并调用远程方法
(5) 运行测试
3 简单例子
服务端:
定义接口:
public interface RimMonitorService extends Remote {
public String interactive()throws RemoteException;
}
接口实现类
public class RimMonitorServerImpl extends UnicastRemoteObject implements RimMonitorService {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String interactive(int index) throws RemoteException {
switch(index){
case 1:
return "成功的!";
case 2:
return "失败的!";
}
return "";
}
public RimMonitorServerImpl() throws RemoteException {
super();
}
}
服务端注册:
public class RmiServer {
public String ip="localhost";
public int port=8889;
public void init(){
try {
LocateRegistry.createRegistry(port);
RimMonitorService rimMonitorService=new RimMonitorServerImpl();
Naming.bind("//"+ip+":"+port+"/com", rimMonitorService);
} catch (RemoteException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (AlreadyBoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
RmiServer server=new RmiServer();
server.init();
System.out.println("服务初始化成功!");
}
客服端
接口定义
public interface RimMonitorService extends Remote {
public String interactive(int index)throws RemoteException;
}
客服端调用
public class RimClient {
public String ip="localhost";
public int port=8889;
public RimMonitorService rimService;
public String interactive(int funindex) throws RemoteException{
rimService=getRimServer();
if(rimService!=null)
return rimService.interactive(funindex);
return "";
}
public RimMonitorService getRimServer(){
try {
rimService=(RimMonitorService)Naming.lookup("rmi://"+ ip+":"+port+"/com");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
return rimService;
}
public static void main(String[] args) {
RimClient client=new RimClient();
try {
System.out.println(client.interactive(1));
System.out.println(client.interactive(2));
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在这里需要 注意的是:客服端调用 可能会出现
java.lang.ClassNotFoundException: xx.xx(no security manager: RMI class loader disabled)
这里的接口所在的包必须和服务器所在的包名一样,同时接口名称也必须一样,
相关推荐
最简单 最有效而且是最易懂的rmi理解例子
Java的远程方法(RMI)例子,有兴趣 ,可以下载学学!EJB底层用的就是Java的RMI
远程服务的接口定义 远程服务接口的具体实现 桩(Stub)和框架... 一个RMI命名服务,它允许客户端去发现这个远程服务 类文件的提供者(一个HTTP或者FTP服务器) 一个需要这个远程服务的客户端程序
创建客户端RMI调用服务端的应用程序。 启动服务端,再启动客户端,测试是否调用成功。 如果客户端和服务端不在同一台电脑上,则需要对刚才定义的服务类采用rmic 编译一个客户端的框架类_stub并拷贝到客户端的类...
java rmi 完整的简单例子 包含详细的文档说明
Java RMI实例
现在虽然我们很少用到RMI进行编程,但是做为Java一个最早的分布式解决方案,我们还是有了解的必要,从例子开始吧!
java简单示例rmi java简单示例rmi
java rmi spring 使用实例,内涵服务端和客户端的源代码,测试可用。
Java RMI简单实例~~~~~~~~~~~
JAVARMI实例[文].pdf
java rmi小例子源代码 ,运行Reg.java ,再执行Client客户端代码就能看效果。如果在不同jvm下执行,注意接口定义包路径客服端和服务端必须保持一致。 客服端包含文件有服务端接口的定义文件。
Java编程rmi实例,给出远程方法调用技术在java方面的具体例子。
rmi 简单例子 rmi 简单例子
我的博客《Java中的RMI(远程方法调用)》的示例代码
这是一个java远程调用的例子,可运行。
java rmi 调用实例及详细说明,详细可参见博客:http://blog.csdn.net/fufengrui/article/details/9855865
JAVA分布式之RMI实例教程网络通信原理[收集].pdf
java rmi例子