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

spring中rmi和httpInvoker的配置

    博客分类:
  • j2ee
 
阅读更多
对于客户端来说,和服务器端的通讯有很多种方式,不过我一般用的就是rmi或者httpInvoker。
spring为多种远程调用都提供了包装:

一。对于RMI来说
 1、服务器端:
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
  
<property name="serviceName"><value>ExampleService</value></property>
  
<property name="service"><ref bean="exampleManager"/></property>
  
<property name="serviceInterface"><value>com.example.server.service.manager.base.IExampleManager</value></property>
  
<property name="registryPort"><value>777</value></property>
 
</bean>

这段spring的配置文件就定义了服务器端的一个bean,可以暴露给客户端通过RMI方式来访问了。
examleMaanger这个bean在实现时,完全不需要知道它自己有一天还会被通过rmi方式被远程访问。
2、客户端:
<bean id="cityService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
        
<property name="serviceUrl"><value>rmi://localhost:777/CityService</value></property>
        
<property name="serviceInterface"><value>com.example.server.service.manager.base.IExampleManager</value></property>
        
<property name="lookupStubOnStartup"><value>true</value></property>
        
<property name="cacheStub"><value>true</value></property>
    
</bean>
这段spring的配置文件定义了客户端的一个bean,这样就可在客户端使用exampleManager了,就如同在本地使用一样,完全没有什么不同。

二。对于httpInvoker来说,其配置比rmi方式要麻烦一些,而且据说其效率也要比rmi方式差,不过这一点我到没有亲身证实过,只是听说而已。但是httpInvoker有一个优点却足以抵消其所有的缺点,那就是它是通过web的端口来访问的。这样,只要能够浏览页面,就能够进行远程调用,避免了rmi方式有时无法通过防火墙的问题。
1、服务器端:
httpInvoker需要web容器的支持,因此需要将服务器端程序部署到web容器内。
在web.xml文件中
    <listener>
        
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    
</listener>

    
<servlet>
        
<servlet-name>remote</servlet-name>
        
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        
<load-on-startup>1</load-on-startup>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>remote</servlet-name>
        
<url-pattern>/remote/*</url-pattern>
    
</servlet-mapping>
注意第一行定义的listener一定要有,否则下面提到的remote-servlet.xml中要引用的bean就会无法找到。
我们定义了一个servlet,名字叫remote,因此在WEB-INF目录下我们建一个名字为remote-servlet.xml的文件,内容为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    "http://www.springframework.org/dtd/spring-beans.dtd"
>
<beans>

    
<bean name="/exampleService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
        
<property name="service"><ref bean="exampleManager"/></property>
        
<property name="serviceInterface">
            
<value>com.example.server.service.manager.IExampleManager</value>
        
</property>
    
</bean>
</beans>
这样服务器端的配置就完成了。exampleManager这个bean被暴露给了客户端 
2、客户端:
<bean id="exampleService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
        
<property name="serviceUrl">
            
<value>http://localhost:80/remote/exampleService</value>
        
</property>
        
<property name="serviceInterface">
            
<value>com.example.server.service.manager.IExampleManager</value>
        
</property>
    
</bean>
 OK,这样客户端的配置就完成了。
分享到:
评论

相关推荐

    Spring 实现远程访问详解——httpinvoker

    上文我们利用Spring rmi实现了Spring的远程访问(Spring 实现远程访问详解——rmi),本文主要讲解利用HttpInvoke实现远程访问。 Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和...

    Spring HttpInvoker介绍

    公司内部讲义,比较了SOA,RMI和Spring HttpInvoker。并介绍了Spring HttpInvoker的基本使用方法。

    Spring 实现远程访问详解——rmi

    2. Spring的HTTP调用器(Spring’s Http Invoker): Spring提供了一种特殊的允许通过HTTP进行Java串行化的远程调用策略,支持任意Java接口(就像RMI调用器)。相对应的支持类是 HttpInvokerProxyFactoryBean和 ...

    Java学习之路-Spring的HttpInvoker学习

    Hessian和Burlap都是基于HTTP的,他们...  Spring开发团队意识到RMI服务和基于HTTP的服务之前的空白,Spring的HttpInvoker应运而生。  Spring的HttpInvoker,它基于HTTP之上提供RPC,同时又使用了Java的对象序列化机

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

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

    spring jar 包详解

    (9) spring-remoting.jar 这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、...

    Spring 实现远程访问详解——httpclient

    上两章我们分别利用Spring rmi和httpinvoker实现的远程访问功能,具体见《》和《》。本章将通过apache httpclient实现远程访问。说得简单就是直接通过spring requestmapping即请求映射url访问远程服务。 1. 远程访问...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

     这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar  这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java ...

    最新最全的spring开发包

     这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar  这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java ...

    Spring in Action(第二版 中文高清版).part2

    16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 下载Spring A.1.1 研究Spring发布 A.1.2 构建自己的类路径 A.2 把...

    Spring in Action(第二版 中文高清版).part1

    16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 下载Spring A.1.1 研究Spring发布 A.1.2 构建自己的类路径 A.2 把...

    spring in action英文版

     1.6.1 比较Spring和EJB  1.6.2 关于其他轻量级容器  1.6.3 Web框架  1.6.4 持久层框架  1.7 小结  第2章 装配Bean  2.1 容纳你的Bean  2.1.1 BeanFactory介绍  2.1.2 使用应用上下文  ...

    Spring Recipes: A Problem-Solution Approach, Second Edition

    * Spring’s support for remoting technologies (RMI, Hessian, Burlap, and HTTP Invoker), EJB, JMS, JMX, email, batch, scheduling, and scripting languages. * Integrating legacy systems with Spring, ...

    Spring in Action(第2版)中文版

    8.4使用httpinvoker 8.4.1通过http访问服务 8.4.2把bean作为http服务公开 8.5spring和web服务 8.5.1使用xfire将bean输出为web服务 8.5.2使用jsr-181注释声明web服务 8.5.3消费web服务 8.5.4使用xfire客户端...

    开源框架 Spring Gossip

    RMI Hessian、 Burlap Http Invoker 邮件 对于邮件发送服务的支援是由Spring的 org.springframework.mail.MailSender介面所定义,它有两个实作类别, org.springframework.mail.cos....

    Manning.Spring.in.Action.4th.Edition.2014.11.epub

    15.4. Using Spring’s HttpInvoker 15.4.1. Exposing beans as HTTP services 15.4.2. Accessing services via HTTP 15.5. Publishing and consuming web services 15.5.1. Creating Spring-enabled JAX-WS ...

    JavaProjects:Java项目

    远程服务:RMI,HttpInvoker,JAX-WS: 视图类型:jsp,jsf,AngularJS 比较器与可比性 单元测试:Junit,Mockito 使用Maven构建所有源 Servlet容器:tomcat7 样机 AngularJS_HomeBudget AngularJS_Maven_...

    carmine:使用 HTTP(S) 的轻量级 Java RMI 替代方案

    该库为 (远程方法调用)或 [Spring HTTP Invoker]( ),使用HTTP(S)协议进行客户端和服务器端之间的通信。 主要特征 Java 到 Java 的远程方法调用是使用HTTP(S)协议完成的 在客户端处理远程对象仅在实例化过程中...

    远程调用服务框架

    给予spring的框架。 封装了xfire、rmi、hessian、httpinvoker 客户端可以统一调用,省略了远程调用的编码。 服务通过服务ID和服务接口来调用。

    基于Spring的RPC通讯模型的使用与比较

    主要介绍了基于Spring的RPC通讯模型的使用与比较,详细的介绍了RMI、Caucho的Hessian和Burlap以及Spring自带的HTTP invoker,感兴趣的可以了解一下

Global site tag (gtag.js) - Google Analytics