`
baobeituping
  • 浏览: 1070511 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

用spring来实现rmi十分的方便

阅读更多

RMI,为远程方法调用,我们要用spring来实现调用:

步骤1:

编写远程接口和远程接口的实现类

接口:

package com.rmi;

public interface ISomeService {

 public String doSomeService(String some);
 public int doOtherService(int other);
}

实现类:

package com.rmi;

public class SomeService implements ISomeService {

 public int doOtherService(int other) {
  // TODO Auto-generated method stub
  return ++other;
 }

 public String doSomeService(String some) {
  // TODO Auto-generated method stub
  return some+" is proceeed";
 }

}

服务端的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
 <bean id="someService" class="com.rmi.SomeService"></bean>
 <bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
  <property name="service" ref="someService"></property>
  <property name="serviceName" value="SomeService"></property>
  <property name="serviceInterface" value="com.rmi.ISomeService"></property>
 </bean>
 </beans>

服务端启动代码:

public class RMIServer {

 /**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {
  ApplicationContext ctx = new ClassPathXmlApplicationContext("rmi.xml");
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  while(true)
  {
   if(br.readLine().equals("exit"))
   {
    break;
   }
   
  }
  RmiServiceExporter rse = (RmiServiceExporter)ctx.getBean("serviceExporter");
  rse.destroy();

 }

}

步骤2:

编写客户端

客户端配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 <bean id="someServiceProxy" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
  <property name="serviceUrl" value="rmi://127.0.0.1/SomeService"/>
  <property name="serviceInterface" value="com.rmi.ISomeService"/>
 </bean>
</beans>
客户端调用服务端的代码:

package com.rmi;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class RmiClient {

 /**
  * @param args
  */
 public static void main(String[] args) {
  ApplicationContext ctx = new ClassPathXmlApplicationContext("rmi-client.xml");
  ISomeService service = (ISomeService) ctx.getBean("someServiceProxy");
  System.out.println(service.doSomeService("some request"));

 }

}

注意:客户端必须要有服务端ISomeService.class的文件,这样客户端才可以有关于该服务端接口的引用,这个是和一般的webservice的调用方法是一样的

分享到:
评论

相关推荐

    spring+rmi非本地实现

    - **实现RMI接口**:接着,我们需要创建一个类来实现这个接口,并提供实际的方法实现。这个实现通常包含业务逻辑。 - **注册远程对象**:在服务端启动时,我们需要将实现RMI接口的对象注册到RMI注册表中。这使得...

    spring中使用RMI

    总的来说,Spring集成RMI提供了一种简单、可管理的方式来创建和使用分布式服务。通过Spring的配置,我们可以轻松地在客户端和服务器之间建立连接,实现远程方法调用,提高应用的可扩展性和灵活性。理解并熟练运用...

    Spring-RMI.rar_spring rmi

    总结,Spring整合RMI提供了一种方便、灵活的方式来实现分布式系统中的远程方法调用。通过"SpringRMIClient"和"SpringRMIServer"示例,我们可以清晰地了解如何在Spring框架下设置和调用RMI服务。这在构建可扩展、高...

    spring rmi 改造

    通过Spring的RMI支持,我们可以方便地定义服务接口和服务实现,然后通过配置文件或注解将它们暴露为RMI服务。这样做不仅提高了代码的可测试性,也使得服务的部署和管理变得更加灵活。 在原生的Spring RMI实现中,...

    Spring-RMI (RMI调用, HTTP调用)

    3. **Spring配置**:在Spring配置文件中,你需要声明一个`RmiServiceExporter`,它会暴露你的服务实现为RMI服务。你可以通过指定`serviceInterface`和`serviceImplementation`属性来关联接口和实现。 4. **客户端...

    spring RMI 服务(自动把service发布为RMI服务)

    总结来说,Spring RMI服务通过Spring的IoC和AOP特性简化了RMI服务的实现,同时提供了自动化发布服务的能力。开发者只需要定义服务接口和实现,Spring会负责服务的注册、暴露和管理。这种方式使得分布式系统的构建...

    rmi实例(Spring整合)

    总结来说,Spring整合RMI提供了一套灵活的工具,使得开发人员可以方便地创建和使用分布式服务。通过合理利用这些工具,我们可以构建出高效、可扩展且易于维护的分布式系统。同时,理解RMI的底层原理和Spring的相关...

    java spring+rmi 的远程调用例子

    Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很可能包含了实现这样一个远程调用示例的所有必要组成部分,包括配置文件、接口定义、服务器端实现...

    java spring rmi

    通过Spring的辅助,开发者可以更方便地创建、配置和管理RMI服务,同时享受到Spring框架带来的诸多便利。无论是对于新手还是经验丰富的开发者,理解并掌握Spring RMI都是提升开发效率和系统质量的重要一环。

    spring RMI 远程接口调用

    在Spring中,RMI的实现被集成到IoC(Inversion of Control)容器中,这样可以方便地管理和配置远程服务。 服务端的实现通常包括以下步骤: 1. **定义远程接口**:这是服务端提供给客户端调用的接口,需要使用`@...

    spring RMI 实用分享

    总结,Spring RMI提供了一种简单而强大的方式来构建分布式系统,通过Spring的集成,我们可以方便地进行远程服务的开发、配置和调用。同时,它还支持事务管理和AOP,使得在处理复杂业务逻辑时更加得心应手。在实际...

    spring-rmi

    Spring框架提供了对RMI的支持,使得在Spring应用中集成RMI变得更加方便。标题"spring-rmi"暗示我们将探讨Spring框架与RMI的整合。 Spring RMI的核心概念包括服务接口、远程实现和服务注册。首先,我们需要定义一个...

    spring rmi 简单应用

    Spring RMI(Remote Method Invocation)简单应用主要涉及的是在Java中使用Spring框架来实现远程方法调用的技术。RMI是Java提供的一种分布式计算能力,它允许一个Java对象调用网络另一端的Java对象的方法,实现了...

    springRMI示例

    在"springRMI示例"中,我们将探讨如何利用Spring框架实现RMI来构建一个能够执行引擎机功能的系统,用于业务处理。 ### Spring RMI 的核心组件 1. **Remoting Beans**: 在Spring中,远程接口和其实现被定义为普通的...

    RMI远程调用

    Spring框架提供了一套更高级别的抽象来简化RMI的使用。通过Spring的`RemoteProxyFactoryBean`,可以创建一个代理对象,该对象在调用方法时自动执行RMI调用。此外,Spring的`RmiServiceExporter`可以方便地导出一个...

    Spring,RMI,thread,hibernate, webservice attachment

    例如,可能会讨论如何在 Spring 中配置和使用 Hibernate 进行持久化操作,或者如何通过 RMI 在不同进程中通信,以及如何利用线程来优化程序性能,还可能涉及到 Webservice 如何实现跨平台的系统交互。 `持久层设计...

    java RMI技术讲解

    **Spring中实现RMI的步骤**: 1. **定义服务接口**:在服务器端定义一个服务接口,该接口通常包含了客户端希望调用的方法。 2. **实现服务接口**:创建一个实现了服务接口的具体类。 3. **注册服务**:使用`org....

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis

    通过以上整合,开发者可以构建出一个分布式系统,其中客户端通过Hessian或RMI与服务端进行高效通信,同时利用Structs、Spring、Hibernate和Ibatis的特性,实现强大的业务逻辑处理、依赖管理、数据库操作和灵活的SQL...

    pro spring 4

    Spring提供了一种灵活的方式来实现AOP。 ### 数据访问与持久化 - **Spring JDBC支持**:Spring为JDBC操作提供了一个抽象层,简化了数据库操作,并且可以方便地进行错误处理。 - **使用Hibernate集成Spring**:...

Global site tag (gtag.js) - Google Analytics