关于Hessian一些报错的解决方案总结

在使用Hessian过程中遇到了Servlet服务异常,具体表现为Hessian2Input在读取字符串时抛出HessianProtocolException。错误定位到Hessian2Input的expect方法和readString方法。问题可能源于序列化或反序列化过程中的数据类型不匹配。解决策略包括检查服务端与客户端的数据序列化版本一致性,确保传递的数据类型正确,并排查Resin3.1服务器配置问题。
摘要由CSDN通过智能技术生成
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。这也正是工作时引入Hessian的一个重要原因,简单易配置。但是同样也有缺点,高版本对于低版本的向下兼容处理的并不好、一直流传一句话,“对于hessian,能不用高版本就不用高版本”,这句话充分说明了大家对于Hessian一些错误的困扰,那么下面总结一下最近遇到的Hessian相关的问题。

1、Nginx 使用反向代理时 Hessian的411错误

报错如下:
com.caucho.hessian.client.HessianConnectionException: 411:java.io.IOException: Server returned HTTP response code: 411 for URL:http://xxxx/xxx/xxxService

排查过程:刚一开始发现报错时,以为是server端返回的报错,还跑去问server端是不是报错了。。。后来了解到server端添加了nginx代理,不再支持绑定ip直连接口的方式。通过查资料发现Hessian在Nginx反向代理的情况下存在问题。

问题原因:
首先来看下   HTTP 411   错误的解释:   Length Required  服务器不能处理请求,除非客户发送一个 Content-Length   头。(   HTTP 1.1   新)这是因为   Hessian   与服务端通信默认是采取分块的方式   (chunked encoding)   发送数据,而反向代理要获得   Content-Length  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值