`
85977328
  • 浏览: 1899731 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3.0.5的rmi集成使用

阅读更多
一 前言
    工作环境中,大部分功能,都是基于服务(SOA模式)的,因此用到了rmi.使用他的目的就是让分布式的开发变的简单,同时提高了项目的扩展性,可维护性,可读性.
    rmi有很多种,例如:
1)远程方法调用(RMI)
2)Spring自己的HTTP invoker
3)EJB
4)Web Services
......
本文选择了spring的rmi接口进行分布式开发应用.具体用哪种rmi,我们还需要深入的挖掘.本文不作讨论.
    至于具体哪里简单呢?需要朋友们深入了解java的远程方法调用(RMI).服务端的接口要继承java.rmi.Remote接口.启动类需要继承java.rmi.server.UnicastRemoteObject类.而且诸如服务器地址等配置信息,也不应该放在代码中,因此spring的rmi模式就应运而生了.

二 环境(javaSE项目)
jdk1.6.0.23
eclipse3.6.1_javaee

三 包
1)日志管理
commons-logging-1.1.1.jar
log4j-1.2.16.jar

2)spring核心包
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar

3)aop支持
aopalliance.jar
org.springframework.aop-3.0.5.RELEASE.jar

四 spring基础配置
1)log4j的配置(src/log4j.properties),推荐配置;
2)commons-logging的配置(src/commons-logging.properties):这里是选配的,不配也不会报错,只是为了方便以后日志系统的切换;
3)spring的配置(src/applicationContext.xml),主要是头文件,spring3对头文件的要求很严格;

五 服务端配置与开发
1)开发服务的接口
2)开发服务的实现类
3)配置spring,配置实现类
4)配置spring,注册rmi服务,其中需要说明
a.远程调用服务名
b.提供服务的实现类
c.提供服务的接口
d.提供服务的端口

六 客户端配置与开发
1)将服务端的接口进行打包(注:不需要实现类,只是客户端访问服务端的一个存根)
2)配置spring
a.指定访问服务的地址
b.指定服务的接口

七 总结
1)接口与类就是java最简单的结构.与RMI无关;
2)客户端必须要有实现类的接口(存根),这样才能访问后实现类的转型,引用与方法调用;
3)本文将服务端和客户端写到了一个工程里,朋友们可以自己将起分离开来使用,但需要注意修改IP地址和开放防火墙相应端口;
4)服务端和客户端都需要使用spring才可以进行rmi的相关开发;
5)笔者会陆续补充其他几种rmi的集成使用方式;


作者简介
昵称:澳洲鸟
姓名:朴海林
QQ:85977328
MSN:6301655@163.com

转载请注明出处
分享到:
评论
20 楼 proTecJavaChen 2011-02-18  
george 写道
现在程序员仿佛都对Spring有“一往情深”的情节,做什么应用,首先想到用Spring来捆绑,像JMS,定时任务、Web Service...等等,这些东西和Spring本质上没有什么关系,为什么一定要用Spring来作为胶水来粘结呢?

因为我感觉spring确实是一个很好的框架啊,易学易用,里面很多思想都是值得学习的!呵呵
19 楼 kingkan 2011-02-17  
85977328 写道
jay_kid 写道
关于spring remoting,<spring recipes>这本书里面讲得很详细, spring可以通过rmi,也可以通过http web service来提供远程服务。rmi有时不能通过firewall,通过http就没有这样的问题。

我会找时间进一步总结,把文章完善,感谢分享你的知识


同感,楼主,试一下Httpinvoker或者Hessian,嘿嘿,期待你能把这两个也分享出来。
18 楼 85977328 2011-02-17  
jay_kid 写道
关于spring remoting,<spring recipes>这本书里面讲得很详细, spring可以通过rmi,也可以通过http web service来提供远程服务。rmi有时不能通过firewall,通过http就没有这样的问题。

我会找时间进一步总结,把文章完善,感谢分享你的知识
17 楼 jay_kid 2011-02-17  
楼主总结得不错,仰慕一下
16 楼 jay_kid 2011-02-17  
关于spring remoting,<spring recipes>这本书里面讲得很详细, spring可以通过rmi,也可以通过http web service来提供远程服务。rmi有时不能通过firewall,通过http就没有这样的问题。
15 楼 85977328 2011-02-16  
不是,maven里直接获取
14 楼 george 2011-02-16  
85977328 写道
我原生的java远程方法调用,也没用到rmic,只是把服务端的接口打包到客户端并引用就可以

那你客户端的 “接口名Imp_Sub.class”类是如何得到的?是不是你的服务端和客户端都运行在同一个程序里面了?
13 楼 85977328 2011-02-16  
我原生的java远程方法调用,也没用到rmic,只是把服务端的接口打包到客户端并引用就可以
12 楼 george 2011-02-16  
85977328 写道
你说的生成存根,我理解应该是web service的开发思路吧。rmi好象不用的。只是把接口引用近来即可。

RMI肯定需要生成存根的,
使用rmic 命令生成存根,使用rmiregistry命令进行注册。

如果你没有用到,可能是Spring自动给你完成了,也许这就是Spring 的用处吧。

11 楼 85977328 2011-02-16  
客户端调用代码非常简单,可以看我的demo
10 楼 85977328 2011-02-16  
你说的生成存根,我理解应该是web service的开发思路吧。rmi好象不用的。只是把接口引用近来即可。
9 楼 85977328 2011-02-16  
spring官方,提供了spring tools的集成eclipse,但我是没怎么用过了。
刚我也把文章的前言更新了一下。希望大家能更好的理解spring的rmi
8 楼 85977328 2011-02-16  
存根就是接口,我们的项目是基于maven管理的,所以不需要做接口相关的事情,引用近来即可。
7 楼 85977328 2011-02-16  
启动类还要实现UnicastRemoteObject接口,结构很麻烦的
用spring,只需要配置
6 楼 george 2011-02-16  
如果Spring能够提供一个GUI界面,来配置生成一些客户端存根和策略文件,并生成客户端demo代码段,也许还有用,如生成下面的策略文件,就降低了手动写的错误概率:
grant
{
 permission java.net.SocketPermission "129.69.25.15:1024-65225","connect";
 permission java.net.SocketPermission "129.69.25.16:1009","connect";
};

如果还是传统的方式,一步一步地自己来生成存根、调用生成的类....
这和Spring有什么关系,不就是平常开发RMI应有的步骤么?
5 楼 85977328 2011-02-16  
java原生的RMI,要实现Remote接口
spring这个什么都不需要,配置就可以
4 楼 george 2011-02-16  
85977328 写道
george 写道
RMI和Spring有关系么?Spring能为RMI开发带来哪些方便?

能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?

spring对rmi进行了相应的包装,客户端的存根就是服务端的接口,开发很简单,只需要配置就可以.详细请看代码

客户端的存根就是服务端的接口
RMI本来就是这样的啊,这个不是Spring的功劳,如果存根不是服务端的接口,那客户端如何调用存根?
3 楼 george 2011-02-16  
现在程序员仿佛都对Spring有“一往情深”的情节,做什么应用,首先想到用Spring来捆绑,像JMS,定时任务、Web Service...等等,这些东西和Spring本质上没有什么关系,为什么一定要用Spring来作为胶水来粘结呢?
2 楼 85977328 2011-02-16  
george 写道
RMI和Spring有关系么?Spring能为RMI开发带来哪些方便?

能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?

spring对rmi进行了相应的包装,客户端的存根就是服务端的接口,开发很简单,只需要配置就可以.详细请看代码
1 楼 george 2011-02-16  
RMI和Spring有关系么?Spring能为RMI开发带来哪些方便?

能够方便地生成存根,还是只填写一个RMI地址和端口,Spring自动给你生成存根和参考客户端实现类?

相关推荐

    spring 3.0.5 集成cxf

    "spring 3.0.5 集成cxf"这一主题聚焦于如何将Spring 3.0.5版本与Apache CXF整合,以实现高效、灵活的服务治理。 Spring 3.0.5是Spring框架的一个稳定版本,它引入了许多增强功能和改进,包括更好的类型安全依赖注入...

    spring3.0.5 所有jar文件

    包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...

    mybatis3.0.5 and spring3.0.5jar

    标题中的"Mybatis3.0.5 and Spring3.0.5jar"暗示了这是一个关于集成Mybatis和Spring框架的讨论,特别关注的是Mybatis的3.0.5版本和Spring的3.0.5版本。这两个框架在Java开发中被广泛用于持久层操作和依赖注入。接...

    Spring3.0.5帮助文档

    Spring3.0.5帮助文档 Spring3.0.5帮助文档 Spring3.0.5帮助文档

    spring3.0.5架包

    这个“spring3.0.5架包”包含了Spring框架的多个组件和库,使得开发者在项目中可以方便地引入和使用。 **核心模块:** Spring的核心模块包括IoC(Inversion of Control,控制反转)容器和AOP(Aspect Oriented ...

    spring3.0.5的所以jar包

    提供了对流行ORM(对象关系映射)框架的集成,如Hibernate和JPA,使得在Spring应用中使用ORM变得更加简单。 8. **org.springframework.aop-3.0.5.RELEASE.jar**: 实现了面向切面编程(AOP),允许定义横切关注点...

    spring3.0.5-dist.rar

    尽管压缩包中未直接包含Spring 3.0.5的完整文档,但通常Spring会提供详细的参考文档、用户指南和API文档,帮助开发者了解和使用其各个功能。 总结来说,"spring3.0.5-dist.rar"压缩包提供了Spring框架3.0.5版本的...

    Spring3.0.5及其依赖包

    Spring3.0.5及其依赖包,包括: spring-framework-3.0.5.RELEASE.zip spring-framework-3.0.5.RELEASE-dependencies.rar

    Spring3.0.5源码+lib包(全)

    Spring框架是Java开发中最常用的轻量级框架之一,它的3.0.5版本是一个重要的里程碑,在这个版本中,Spring引入了许多新特性和改进。这里,我们主要探讨Spring 3.0.5的核心概念、设计原则以及它在lib包中的依赖。 **...

    Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解完整版

    总结,本实例详细介绍了如何使用 Spring MVC 3.0.5、Spring 3.0.5 和 MyBatis 3.0.4 进行全注解开发,涵盖了开发环境配置、Maven 的使用、SSM 整合以及如何在 Eclipse 和 MyEclipse 中集成 Maven。这个教程对于希望...

    spring 3.0.5v jar包

    Spring 3.0.5是Java开发中广泛使用的框架,主要专注于简化企业级应用程序的构建。这个版本的jar包包含了Spring框架的核心组件,为开发者提供了强大的依赖注入(Dependency Injection,DI),面向切面编程(Aspect-...

    spring3.0.5帮助文档chm

    spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档spring3.0.5帮助文档

    spring3.0.5 核心JAR包

    Spring 3.0.5是Spring框架的一个重要版本,它在Spring框架的发展历程中占据了显著的位置。这个版本引入了许多新特性...在实际项目中,通常会根据具体需求,将Spring 3.0.5与这些第三方库结合使用,构建完整的应用程序。

    Spring3.0.5所有jar包及每个jar包作用说明文档

    Spring 3.0.5是该框架的一个稳定版本,包含了多个jar包,每个jar包都有其特定的功能和用途。以下是这些jar包的主要作用和相关知识点: 1. **spring-core.jar**:这是Spring框架的核心库,包含了IoC(Inversion of ...

    spring3.0.5的aop使用

    本文将深入探讨Spring 3.0.5版本中的AOP(面向切面编程)特性,以及如何使用它来提升代码的可维护性和模块化。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以包含业务逻辑的各个部分,如日志、事务管理...

    spring3.0.5所有jar包

    6. **数据访问支持**:Spring 3.0.5提供了对JDBC、ORM(如Hibernate、MyBatis)、JPA和JDO的集成,使得数据库操作变得更加简单和灵活。 7. **MVC框架**:Spring Web MVC是Spring框架的一部分,用于构建Web应用程序...

    spring3.0.5_hibernate3.5.3_struts2.2.1整合jar包

    标题中的"spring3.0.5_hibernate3.5.3_struts2.2.1整合jar包"指的是一个集合了Spring 3.0.5、Hibernate 3.5.3和Struts 2.2.1框架的整合包。这个资源是经过作者亲自测试的,被认为是最优的选择。它不仅提供了这三个...

    spring2.0升级到spring3.0.5的开发包

    7. **AspectJ集成加强**:Spring 3.0进一步强化了与AspectJ的集成,使得AOP的使用更加简便,可以通过注解轻松定义切面。 8. **国际化支持**:Spring 3.0的MessageSource接口提供了更好的国际化支持,可以更方便地...

    spring3.0.5.jar

    JPA是Java EE平台中用于持久化数据的标准API,Spring 3.0.5通过优秀的JPA支持,让开发者可以轻松地在Spring应用中使用各种JPA实现,如Hibernate、EclipseLink等。它提供了事务管理、DAO模板、查询构造等功能,使得...

    MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案

    本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...

Global site tag (gtag.js) - Google Analytics