1. 为什么选择Hessian
一直以来在工作中都是以使用SOAP的webservice如CXF,Axis等来实现和外部系统集成。但是使用的越多就越发现这东西性能上耗损太多。并且基本上没法适应Java与.net的集成(List数据传送都会带出很多问题)。而Hessian就相对轻量级很多,但为什么项目中不使用它呢~~是因为客户的系统多为IBM此类公司的系统,一般都是被忽悠着使用SOAP做为SOA的解决方案,完全没有可能去说服他们同样使用Hessian。所以这个东西不常用。
而现在选择Hessian是因为哥自己的做着玩的项目,哥想用什么就用什么!
2. Hessian介绍
Hessian的介绍就不贴了,可以看官网:http://hessian.caucho.com/doc/
中文的可以看baidu知道:http://baike.baidu.com/view/2255290.htm?fr=ala0_1_1#1
上面有基本的使用列子,很简单的实现方案。
3. Hessian与Spring的整合
这个是本文最重要的一个环节。spring的官网上有提过的。带来最大的好处是你不用再web.xml中一个个声明Hessian Service,而是可以通过定义在spring的*-servlet.xml中通过Spring DispatcherServlet来注册Hessian service.在hessian-servlet.xml中需要定义HessianServiceExporter class为Bean用以注册Service.
简单的Example:
在hessian-servlet.xml声明你的Hessian Service内容如下(以下Intf为Coral,Impl为CoralService):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="coral" class="hessian.example.impl.CoralService" />
<bean name="/coral"
class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="coral" />
<property name="serviceInterface" value="hessian.example.Coral" />
</bean>
</beans>
然后在web.xml中定义
<servlet>
<servlet-name>hessian</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hessian</servlet-name>
<url-pattern>/hessian/*</url-pattern>
</servlet-mapping>
配置就完成了。
调用的URL为:http://localhost:8888/yourApp/hessian/coral
注意: Spring与不同的版本间的Hessian整合是存在Bug的。我试过使用最新版本的Spring(2.5.3)以及最新版本的Hessian(3.2.1)会报出:com.caucho.hessian.io.HessianProtocolException: expected string at 0x6d的错误。但是当我把Hessian的版本退回到3.1.6后就没有这个错误。
*附件是自己收藏的小工具与本文无关。
分享到:
相关推荐
Hessian学习笔记 Hessian是一种基于Binary-RPC协议实现的远程通讯library,由Caucho提供。下面是Hessian的学习笔记: 一、简介 Hessian是基于Binary-RPC协议实现的远程通讯library,用于实现远程过程调用(RPC)...
在IT领域,Hessian是一种二进制协议,用于远程方法调用(Remote Method Invocation, RMI)和服务调用。它由Caucho Technology开发,旨在提高网络通信的效率,通过减少传输的数据量来提升性能。Hessian协议支持Java、...
在“Flex + Hessian 学习笔记(二)”中,我们可能涉及以下知识点: 1. **Flex应用的架构**:Flex应用通常包含三层结构:表现层(Presentation)、业务逻辑层(Business Logic)和数据访问层(Data Access)。Hessian...
**WebService的轻量级实现——Hessian学习笔记** 在IT行业中,WebService作为一种常见的跨平台、跨语言的通信机制,被广泛应用于系统间的交互。然而,传统的SOAP(Simple Object Access Protocol)协议实现的...
Flex + Hessian 学习笔记(一) http://wangcheng.javaeye.com/blog/141382 Flex + Hessian 学习笔记(二) http://wangcheng.javaeye.com/blog/141539 Flex + Hessian 学习笔记(三) ...
在IT行业中,Hessian是一种高效的远程方法调用(Remote Method Invocation, RMI)协议,它由Caucho Technology开发。Hessian提供了一种二进制的序列化格式,使得网络通信更加高效,减少了数据传输量。它支持Java、...
根据提供的文件信息,华东师范大学陆吾生教授的讲义笔记主要围绕最优化理论和相关算法,特别是梯度下降法和随机梯度下降法。以下是对这些知识点的详细说明: 首先,讲义笔记的介绍部分提到,课程的目的是向学生提供...
这篇笔记涵盖了多个优化理论和线性规划的知识点,主要涉及凸函数、线性规划的性质、最优化方法以及非线性优化的一些基本概念。 首先,笔记提到凸函数的判定条件。一个在一阶可微的函数在某区域内是凸函数的充要条件...
2. 常见的序列化协议包括 json、xml、hessian、protobuf、thrift、text、bytes 等。 3. 主流的远程调用技术有基于 HTTP 的 RESTful 接口以及基于 TCP 的 RPC 协议。 本文对微服务架构笔记(一)进行了详细的总结和...
此外,还有更高效的算法,如拟牛顿法和共轭梯度法,它们在保持全局收敛性的前提下,通过更精确地近似海森矩阵(Hessian矩阵)来加速收敛。 在机器学习中,凸优化的应用广泛。例如,逻辑回归、支持向量机、线性回归...
本篇文章将深入探讨“java后端学习笔记”中的关键知识点,包括消息队列(Message Queuing)服务如ActiveMQ和RabbitMQ、工作流引擎Activity、容器化技术Docker、分布式服务框架Dubbo、网络库Netty、RPC(Remote ...
3. 凸分析:包括梯度、Hessian矩阵等工具,可以帮助我们理解和求解凸优化问题。例如,梯度下降法是求解凸优化问题的一种常用迭代方法,它沿着目标函数梯度的反方向更新参数,直至达到最小值。 三、二次规划 二次...
5. 序列化与反序列化:Dubbo支持多种序列化协议(如Hessian2、FastJSON等),确保数据在网络中的高效传输。 6. 超时与重试:Dubbo提供了超时机制和重试策略,以应对网络延迟或服务不稳定的情况。 7. 异常处理:当...
在本课程“上交大最优化方法笔记”中,主要讲解了优化问题的基本理论和实用技术。以下是笔记的关键知识点: 1. **最优性条件**:对于一个点成为局部最小点,需要满足一阶和二阶必要条件。一阶必要条件指出,如果某...
Spring是一个广泛使用的Java应用框架,它可以与SSH一起使用,实现远程调用服务(如Hessian和 Burlap)或使用Spring的JMX支持通过SSH进行远程管理。这个部分可能会讲解如何配置Spring应用以支持SSH连接,以及如何使用...
2. **牛顿法和拟牛顿法**:牛顿法利用二阶导数信息(Hessian矩阵)进行迭代,而拟牛顿法则通过近似Hessian矩阵来节省计算成本。这些方法在解决平滑优化问题时效率较高,适用于大型网络或环境的路径规划。 3. **线性...