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的学习笔记
WebService另一种轻量级实现—Hessian 学习笔记.rar
NULL 博文链接:https://pangxin12345.iteye.com/blog/1102597
Flex + Hessian 学习笔记(一) http://wangcheng.javaeye.com/blog/141382 Flex + Hessian 学习笔记(二) http://wangcheng.javaeye.com/blog/141539 Flex + Hessian 学习笔记(三) ...
source & swf 博文链接:https://wangcheng.iteye.com/blog/141539
hessian与spring整合的jar包
原生Java、Fastjson、Jackson、Hessian2、XML反序列化漏洞利用和Spring、Dubbo、Shiro、CAS、Tomcat、RMI、Nexus等框架\中间件\功能的exploitsJava Security Manager绕过、Dubbo-Hessian2安全等实践代码。...
伯禹公益AI《动手学深度学习PyTorch版》Task 07 学习笔记 Task 07:优化算法进阶;word2vec;词嵌入进阶 微信昵称:WarmIce 优化算法进阶 emmmm,讲实话,关于所谓的病态问题是什么,条件数在复杂优化目标函数下的...
一个三流程序员路任葭慢慢成长的学习笔记 2019.4.7 ps好像在线预览显示不全,字丑自娱自乐使用本repo :beaming_face_with_smiling_eyes: 1)手推公式部分:从LR-> SVM,从GBDT-> XGBOOST 2)梯度下降梳理:BGD-> ...
这是一个个人用于复现、公开一些感兴趣、或者影响稍大的漏洞的项目,没有多少技术含量,权当个人技术笔记。 fastjson 该模块主要记录一些fastjson的利用gadget,不过很多gadget并没有记录在案。 RCE相关 package:...
这篇论文提出了著名的Highway Network,用于解决深层网络的训练问题。这个结构已经得到了广泛的应用,也有...Training deep and recurrent networks with hessian-free optimization On the importance of initializat
###技术笔记 慢慢整理成博客: ###tomcat Tomcat6 6版本是个经典,自己整理可以跑起来的Tomcat代码,阅读学习。 tomcat-work 是《How Tomcat Works》的代码,可惜是Jdk1.4的,也可以作为学习用。 ###分布式小框架...
Hessian 算法 DAISY 描述符 具有非最大抑制 NMS ( hog_detect_people.py ) 的 HOG 描述符(定向梯度直方图) Harris:用于检测角点 ( harrisCornerDetection.py ) FAST(来自加速段测试的特征):用于检测角点 简介...