hessian BigDecimal反序列化异常

用hessian时BigDecimal反序列化时有的版本报上述异常如hessian4.0.7,有的版本反序列化结果是0,原因是服务端和客户端没有加序列化和反序列化配置,在服务提供方jar包里加上hessian的配置就可以了,如下:

deserializers文件内容:

java.math.BigDecimal=com.caucho.hessian.io.BigDecimalDeserializer

java.sql.Date=com.caucho.hessian.io.SqlDateDeserializer

java.util.Date=com.caucho.hessian.io.DateDeserializer

serializers文件内容:

java.math.BigDecimal=com.caucho.hessian.io.StringValueSerializer

java.sql.Date=com.caucho.hessian.io.SqlDateSerializer

java.util.Date=com.caucho.hessian.io.DateSerializer

时间: 2024-10-05 08:04:26

hessian BigDecimal反序列化异常的相关文章

fastJson反序列化异常,JSONException: expect ':' at 0, actual =

com.alibaba.fastjson.JSONException: expect ':' at 0, actual = at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:290) ~[fastjson-1.2.47.jar:na] at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(Ma

反序列化异常问题

下面是一些复杂对象情况下一些总结: l   当父类继承Serializable接口,所有子类都可以被序列化 l   子类实现了Serializable接口,父类没有,父类中的属性不能序列化(不报错,数据会丢失),但是子类中属性人能正确序列化 l   如果序列化的属性是对象,这个对象也必须实现Serializable接口,否则会报错 l   在反序列化时,如果对象的属性有修改或删减,修改的部分属性会丢失,但不会报错 l   在反序列化时,如果serialVersionUID被修改,那么反序列化时会

测试Hessian反序反序列化 客户端少字段和多字段时能否成功

import java.io.*; import com.caucho.hessian.io.HessianInput; import com.caucho.hessian.io.HessianOutput; import hessian.Employee; public class HessianSerializeDeserializeMain { /** * Hessian实现序列化 * @param employee * @return * @throws IOException */ p

Hessian序列化的一个潜在问题

一. 最近的用rpc框架的时候,当用hessian序列化对象是一个对象继承另外一个对象的时候,当一个属性在子类和有一个相同属性的时候,反序列化后子类属性总是为null. 二. 示例代码: DTO对象 public class User implements Serializable { private String username ; private String password; private Integer age; } public class UserInfo extends Us

Hessian原理分析

一.      远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . tcp . udp 等等, http . tcp . udp 都是在基于 Socket 概念上为某类应用场景而扩展出的传输协议,网络 IO ,主要有 bio . nio . aio 三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议. 二.      应

protostuff序列化/反序列化

Protostuff是基于Google protobuff技术的Java版本,直接使用原生的protobuff是需要数据结构的预编译过程,需要编写.proto格式的配置文件,再通过protobuff提供的工具翻译成目标语言代码,而Protostuff动态支持了protobuff的预编译的过程,可以直接使用普通java POJO进行序列化,简化编码. 经过实测序列化性能相对原生protpbuff没有影响. 由于Protostuff只支持Java实现,不过并未对序列化格式有做任何修改,所以Proto

JavaSE:异常总结(Exception)

整体结构:        java.lang.Throwable               java.lang.Error               java.lang.Exception                      java.lang.RuntimeException 编译时异常为受检异常(checked) 1.异常:程序在执行过程中发生的不正常情况,程序员可以捕获处理 错误:不期望被用户捕获的异常,如计算机硬件的损坏,内存溢出. 2.编译时异常:.java源文件在执行.ja

hessian协议原理

Hessian 原理分析 一.      远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . tcp . udp 等等, http . tcp . udp 都是在基于 Socket 概念上为某类应用场景而扩展出的传输协议,网络 IO ,主要有 bio . nio . aio 三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层

BigDecimal进行除法运算时的坑

循环小数输出的坑 BigDecimal做除法时如果出现除不尽(循环小数)的情况,会抛异常: BigDecimal a = new BigDecimal("1"); System.out.println(a.divide(new BigDecimal(3))); 异常如下: Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no ex