`

spring-rmi 整合

 
阅读更多
spring rmi整合:
 
   spring可以将任意POJO对象设置为RMI对象,供外部程序访问。通过spring的AOP动态代理可以添加RMI的访问规则。spring的RMI导出器仅仅只是暴露了POJO对外部的访问,但其安全管理,权限控制等还需要自己处理,
    但spring还是提供了访问点,可以通过访问点,应用自己的安全策略。 具体配置如下:
   
    服务端:
接口类:
package com.rmi;

public interface UserService {

public abstract void insertUser(String username);

public abstract void delUser(String username);

}

具体实现类:
package com.rmi;

public class UserServiceImpl implements UserService {
/* (non-Javadoc)
* @see com.rmi.UserService#insertUser(java.lang.String)
*/
public void insertUser(String username) {
System.out.println("UserService.insertUser() inser user sucess..."
+ username);
}

/* (non-Javadoc)
* @see com.rmi.UserService#delUser(java.lang.String)
*/
public void delUser(String username) {
System.out.println("UserService.delUser() del username success......"
+ username);
}
}


applicatonContext-rmi.xml配置如下:

 
  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="userservice" class="com.rmi.UserServiceImpl" />  <!-- 具体需要导出的RMI对象,其对象是一个POJO对象 -->
<bean id="userExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"> <!--  RmiServiceExporter 采用spring的AOP动态代理技术将对rmi远程对象的调用转化成对目标对象的调用 -->
  <property name="serviceName" value="UserService"></property> <!-- 注册的服务名 -->
  <property name="service"  ref="userservice"/><!-- 目标实现对象 -->
  <property name="serviceInterface" value="com.rmi.UserService"></property><!-- 目标对象的接口类 -->
  <property name="registryPort" value="1599" /><!-- 注册的端口,可以通过该端口获取到目标对象 -->
  <property name="servicePort" value="458" /><!-- 用于进行通信的端口 -->
</bean>
</beans>
通过以上配置,就可以通过 rmi://localhost:1599/UserService访问到该rmi服务。

客户端配置:
1.客户端可以通过普通RMI访问策略访问有spring管理的服务器端。 
2.客户端也可以通过spring的RmiProxyFactoryBean访问。
下面介绍第二种:

applicatonContext-rmi.xml配置如下:
 
  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

<bean id="RmiUserService" class="org.springframework.remoting.rmi.RmiProxyFactoryBea">
  <property name="serviceUrl" value="rmi://localhost:1599/UserService" />
  <proeprty name="serviceInterface" value="com.rmi.UseService" />
</bean>
</beans>

通过以上配置就可以直接从springIOC容器中拿到远程RMI对象,此RmiUserService对象就可以看出是服务器端的UserServiceImpl对象。

通信逻辑:
 
   RmiServiceExport 通过Spring的AOP将POJO暴露成RMI对象。客户端通过RmiProxyFactoryBean访问Rmi对象。
  
分享到:
评论

相关推荐

    Spring-RMI.rar_spring rmi

    Spring整合RMI的使用,实现不同项目间方法的远程调用。

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

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis 包含Hessian配置说明、服务器Server Demo、客户端Client Demo.

    spring与rmi 整合实例 源码详解

    spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类

    spring和RMI分布式整合源码

    spring和RMI分布式整合源码

    rmi与spring整合实例

    rmi与spring整合实例

    spring整合RMI

    spring整合RMI的一个小例子, 绝对可以跑起来

    Spring-Reference_zh_CN(Spring中文参考手册)

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...

    spring RMI 实用分享

    NULL 博文链接:https://forgidaved.iteye.com/blog/2142587

    rmi实例(Spring整合)

    NULL 博文链接:https://spacecity.iteye.com/blog/1471250

    spring整合RMI小例子

    NULL 博文链接:https://sharron5.iteye.com/blog/794531

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    RMI入门例子和教程,分初级、进阶,还有与Spring整合的

    自己收集了一些跑得通的教程,并自己整理给出了,入门例子。包括:最原生的使用javac和rmic的例子;还有进一步的,使用IDM,用代码代理原生rmic...还有RMI和Spring整合的例子。 另外附有:例子说明 和 一些简单的教程。

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    Spring2.52 开发手册

    Spring为编写企业应用程序提供了轻量的解决方案,同时仍然支持使用声明式事务、 用RMI或web service远程调用、以及使用多种方式来将数据持久化到数据库。Spring提供了全功能的 MVC framework, 以及透明集成AOP到你...

    spring3.2中文文档

    spring3.2框架是一个轻量级的解决方案和...spring 框架支持声明式事务管理、远程访问 你的逻辑通过RMI或web服务,以及各种选项 坚持你的数据。 它提供了一个功能全面的 MVC框架 ,并允许您 整合 aop 透明地进 你的软件。

    Spring 实现远程访问详解——jms和activemq

    前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程访问。本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. ...

    Spring整合Ecache

    本实例的环境 eclipse + maven + spring + ehcache + junit EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的...使用Spring的AOP进行整合,可以灵活的对方法的返回结果对象进行缓存

    Spring 2.0 开发参考手册

    17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian配置DispatcherServlet 17.3.2. 使用...

Global site tag (gtag.js) - Google Analytics