`
想起要学好java
  • 浏览: 8141 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hessian使用和理解

    博客分类:
  • http
 
阅读更多
本文参考文档:
 
Hessian是一个轻量级的RPC框架
RPC框架就是提供远程调用的框架。Hessian在项目中的运用也是远程调用,如使用情况最多的是文件服务器和图片服务器,项目做大后,一搬会将应用单独部署到某些服务器上,而文件图片放另外的服务器,数据库也单独放服务器,这样可以提高应用并发处理的能力。那么应用需要对文件和图片进行处理时,就必须远程调用,这个时候就可以用Hessian作为框架。
 
基于Hessian的远程调用协议。
连接个数:多连接
连接方式:短连接
传输协议:HTTP
传输方式:同步传输
序列化:Hessian二进制序列化
适用范围:传入传出参数数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。
适用场景:页面传输,文件传输,或与原生hessian服务互操作
(1) 约束:
参数及返回值需实现Serializable接口
参数及返回值不能自定义实现List, Map, Number, Date, Calendar等接口,只能用JDK自带的实现,因为hessian会做特殊处理,自定义实现类中的属性值都会丢失。
 
Hessian的底层是基于http的传输协议,也是通过HttpUrlConnection也远程调用,将参数和返回值通过http进行传输,所以感觉和http没什么大的区别,但hessian对参数和返回的解析都进行了封装,不需要自己解析,同时,hessian和spring结合使用后,调用hessian的服务就相当于调用本地服务一样简单方便。具体可以看上面的文档,有详细的介绍。
 
下面结合项目具体说一下何如使用。
服务端配置:
<bean class="org.springframework.remoting.caucho.HessianServiceExporter" name="/ImageTest">
<property name="service" ref="hessianInerface" />
<property name="serviceInterface" value="com.lmw.p2p.image.HessianInerface" />
</bean>
 
<bean class="org.springframework.remoting.caucho.HessianServiceExporter" name="/FileDataTest">
<property name="service" ref="fileDataInerface" />
<property name="serviceInterface" value="com.lmw.p2p.file.FileDataInerface" />
</bean>
 
这里代表以/ImageTest为url的请求链接创建的hessian代理类,会指向服务端的hessianInerface这个接口。
 
消费端配置:
<bean id="imagesService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl"> 
    <value>${images.serviceUrl}</value> 
</property>
<property name="serviceInterface" value="com.lmw.p2p.image.HessianInerface" />
<property name="overloadEnabled" value="true" />
</bean>
 
<bean id="fileDataService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl"> 
    <value>${files.serviceUrl}</value> 
</property>
<property name="serviceInterface" value="com.lmw.p2p.file.FileDataInerface" />
<property name="overloadEnabled" value="true" />
</bean>
 
这个url就会指向上面服务端的hessianInerface这个接口。
 
消费端这样配置后,通过spring加载后,imagesService就可以在消费端的项目里直接使用,它指向的就是服务端的接口,就像调用本地的service服务一样。
在hessian底层中,会通过http实现远程调用。
分享到:
评论

相关推荐

    Hessian学习简单demo

    想学习Hessian的同志们,这个是一个简单的demo。比较简单,不过能够加深对Hessian的理解

    Hessian远程调用框架学习一

    Hessian远程调用框架学习一,第一个JAVA使用hessian的入门demo,简单实用易理解

    理解RESTful架构、Hessian简介、机制、Webservice及cxf介绍

    (2)客户端和服务器之间,传递这种资源的某种表现层(Representation); (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。 Hessian: 是由caucho提供的一个基于binary-RPC实现的...

    基于WebService的Hessian例子教程

    基于WebService的Hessian例子,有代码,可以直接跑起来,一针见血的例子,相当 简单,有服务器端与客户端两个例子,相当好理解

    spring in action英文版

     6.3 使用Hessian和Burlap的远程调用  6.3.1 访问Hessian/Burlap服务  6.3.2 用Hessian或Burlap公开Bean的功能  6.4 使用HTTP invoker  6.4.1 通过HTTP访问服务  6.4.2 把Bean作为HTTP服务公开  ...

    Spring in Action(第2版)中文版

    8.3使用hessian和burlap的远程调用 8.3.1访问hessian/burlap服务 8.3.2用hessian或burlap公开bean的功能 8.4使用httpinvoker 8.4.1通过http访问服务 8.4.2把bean作为http服务公开 8.5spring和web服务 8.5.1...

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

    8.3 使用Hessian和Burlap的远程调用 8.3.1 访问Hessian/Burlap服务 8.3.2 用Hessian或Burlap公开Bean的功能 8.4 使用HTTP invoker 8.4.1 通过HTTP访问服务 8.4.2 把Bean作为HTTP服务公开 8.5 Spring和Web...

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

    8.3 使用Hessian和Burlap的远程调用 8.3.1 访问Hessian/Burlap服务 8.3.2 用Hessian或Burlap公开Bean的功能 8.4 使用HTTP invoker 8.4.1 通过HTTP访问服务 8.4.2 把Bean作为HTTP服务公开 8.5 Spring和Web...

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

    使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.1.1. LocalEntityManagerFactoryBean 12.6.1.2. ...

    Spring中文帮助文档

    12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的...

    Spring API

    12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的...

    Spring 2.0 开发参考手册

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    spring chm文档

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    java开源包8

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics