`
chen422520
  • 浏览: 27212 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java Rmi 简单实例

阅读更多

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)

 

这里的接口所在的包必须和服务器所在的包名一样,同时接口名称也必须一样,

 

 

分享到:
评论

相关推荐

    JAVA RMI简单例子

    这个"JAVA RMI简单例子"旨在帮助我们深入理解RMI的基本原理和实现步骤。 RMI的核心概念包括远程接口、远程对象和RMIC编译器。首先,我们需要定义一个远程接口,该接口声明了可以在远程服务器上执行的方法。这些方法...

    java RMI简单例子

    以下是对"java RMI简单例子"的详细解释: 1. **RMI的基本概念**: - **远程对象**:在RMI中,一个对象如果可以在不同的JVM上执行其方法,那么就被称为远程对象。 - **远程接口**:定义远程对象需要实现的接口,...

    java rmi 简单实例

    远程服务的接口定义  远程服务接口的具体实现  桩(Stub)和框架... 一个RMI命名服务,它允许客户端去发现这个远程服务  类文件的提供者(一个HTTP或者FTP服务器)  一个需要这个远程服务的客户端程序

    Java RMI 简单示例

    这个简单的示例展示了如何创建一个基本的Java RMI应用程序,包括远程接口、服务器端和客户端。 首先,我们来看远程接口。在这个例子中,`HelloIn`接口定义了一个方法`sayHello()`,该方法抛出`RemoteException`。这...

    java RMI简单Demo

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同网络节点上的Java对象之间进行透明的交互。在Java RMI中,一个对象可以调用另一个位于不同JVM(Java虚拟机)...

    java rmi 简单易懂的实例

    通过这个简单的实例,学习者可以了解到Java RMI的基本工作流程,以及如何在实践中部署和使用远程对象。深入研究后,还可以探索更复杂的场景,如并发调用、安全性控制、容错机制等,以构建更加健壮和高效的分布式系统...

    一个java RMI应用实例 构建简单的RMI应用

    创建客户端RMI调用服务端的应用程序。 启动服务端,再启动客户端,测试是否调用成功。 如果客户端和服务端不在同一台电脑上,则需要对刚才定义的服务类采用rmic 编译一个客户端的框架类_stub并拷贝到客户端的类...

    Java RMI实例

    Java RMI实例

    Java RMI的简单例子

    ### Java RMI基础知识与示例解析 ...通过以上详细分析,我们可以清楚地了解到如何使用Java RMI来实现简单的分布式应用。尽管RMI在现代Java开发中的使用频率不高,但了解其基本原理和技术细节仍然具有一定的价值。

    基于JAVA RMI的聊天室

    在这个“基于JAVA RMI的聊天室”项目中,开发者利用RMI技术构建了一个简单的多用户交互系统,让用户可以在不同的计算机上进行实时聊天。 ### 1. JAVA RMI原理 RMI允许Java对象在不同的Java虚拟机之间进行方法调用...

    通过Java RMI实现远程调用的一个简单例子

    这个简单的例子将引导我们了解如何利用Java RMI实现远程调用。 首先,我们要创建远程接口。在Java RMI中,远程接口是一个实现了`java.rmi.Remote`接口的Java接口。接口中声明的方法将在客户端调用,实际上会在...

    java rmi java rmi

    根据提供的文件信息,我们可以深入探讨Java RMI(Java Remote Method Invocation)的相关知识点,包括其概念、原理、体系结构以及一个具体的示例。...这个例子展示了如何利用RMI技术来构建分布式应用程序。

    Java RMI 可运行实例

    3. **运行RMI实例** - **启动RMI注册表**:运行`rmiregistry`命令启动RMI注册表服务。 - **编译代码**:确保所有的Java源代码都已正确编译为字节码文件。 - **运行服务器**:使用`java`命令运行服务器端程序,这...

    java_rmi.rar_RMI java_java.rmi

    这个"java_rmi.rar"压缩包包含的资源可能是一个Java RMI的实例教程或者代码示例。"www.pudn.com.txt"可能是一个包含相关说明或者下载链接的文本文件,而"rmi"可能是包含具体RMI示例代码的文件夹。 在RMI的基本流程...

    JAVA RMI实现程序实例

    在这个"JAVA RMI实现程序实例"中,我们将会探讨如何使用RMI实现一个简单的“Hello, World”示例,并已经在两台机器上进行了成功的测试。 首先,我们需要了解RMI的基本概念。RMI的核心思想是将对象的方法调用转化为...

    java rmi spring 使用实例

    java rmi spring 使用实例,内涵服务端和客户端的源代码,测试可用。

    JAVARMI实例[文].pdf

    在Java RMI实例中,我们通常会经历以下几个步骤: 1. **创建远程接口**:首先,我们需要定义一个远程接口,这个接口需要扩展`java.rmi.Remote`。远程接口中的所有方法都需要抛出`RemoteException`,这是因为远程...

    一个完整的Java RMI通讯的例子

    - RMI默认使用简单认证,可以通过设置Java安全策略加强安全性。 - 为RMI连接启用SSL可以提供加密通信,防止中间人攻击。 7. **性能优化**: - 使用Stub和Skeleton机制可以减少网络传输的数据量。 - 考虑使用RMI...

    JavaRMI快速入门

    Java Remote Method Invocation(Java RMI)是Java编程语言中用于在网络间进行远程对象调用的技术。它是Java平台的标准部分,允许程序员在分布式环境中调用对象的方法,就像它们在同一台计算机上一样。Java RMI对于...

Global site tag (gtag.js) - Google Analytics