序列化之Hessian序列化

简介:

Hessian序列化与Java默认的序列化区别?

    1、 Hessian 支持跨语言串行

    2、 比java序列化具有更好的性能和易用性

    3、 支持的语言比较多

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package  com.xingej.ser.impl;
 
import  java.io.ByteArrayInputStream;
import  java.io.ByteArrayOutputStream;
import  java.io.IOException;
 
import  com.caucho.hessian.io.HessianInput;
import  com.caucho.hessian.io.HessianOutput;
import  com.xingej.ser.ISerializer;
 
public  class  HessianSerializer  implements  ISerializer {
 
     @Override
     public  <T>  byte [] serialize(T obj) {
         // 1、创建字节输出流
         ByteArrayOutputStream bos =  new  ByteArrayOutputStream();
 
         // 2、对字节数组流进行再次封装
         HessianOutput hessianOutput =  new  HessianOutput(bos);
 
         try  {
             // 注意,obj 必须实现Serializable接口
             hessianOutput.writeObject(obj);
         catch  (IOException e) {
             e.printStackTrace();
         }
 
         return  bos.toByteArray();
     }
 
     @SuppressWarnings ( "unchecked" )
     @Override
     public  <T> T deserialize( byte [] data, Class<T> clazz) {
         // 1、将字节数组转换成字节输入流
         ByteArrayInputStream bis =  new  ByteArrayInputStream(data);
 
         HessianInput hessianInput =  new  HessianInput(bis);
 
         Object object =  null ;
 
         try  {
             object = hessianInput.readObject();
         catch  (IOException e) {
             e.printStackTrace();
         }
 
         return  (T) object;
     }
 
}

















本文转自故新51CTO博客,原文链接: http://blog.51cto.com/xingej/1960998,如需转载请自行联系原作者




相关文章
|
4月前
|
Java
JDK序列化原理问题之Hessian框架不支持writeObject/readObject方法如何解决
JDK序列化原理问题之Hessian框架不支持writeObject/readObject方法如何解决
|
4月前
|
XML 存储 JSON
(十二)探索高性能通信与RPC框架基石:Json、ProtoBuf、Hessian序列化详解
如今这个分布式风靡的时代,网络通信技术,是每位技术人员必须掌握的技能,因为无论是哪种分布式技术,都离不开心跳、选举、节点感知、数据同步……等机制,而究其根本,这些技术的本质都是网络间的数据交互。正因如此,想要构建一个高性能的分布式组件/系统,不得不思考一个问题:怎么才能让数据传输的速度更快?
113 1
|
安全 测试技术 Nacos
Nacos Jraft Hessian反序列化远程代码执行漏洞
Nacos Jraft Hessian反序列化远程代码执行漏洞
1792 1
|
存储 分布式计算 JavaScript
Fury系列(四):一个比Kryo/Hessian快30~40倍的类型前后兼容序列化器
问题背景类型前后兼容是复杂业务场景序列化的常见需求。在快速迭代的业务场景当中,读写端经常发生对象字段发生变更:在线应用场景:线上SOFA/HSF应用提供服务给多个调用方,服务的滚动升级以及各个调用方独立更新都可能导致对象类型不一致的情况;在线服务场景:在线服务框架常驻不更改对象类型,但调用方业务逻辑变动独立更新导致对象字段跟服务端不一致;对象持久化场景:对象数据序列化后持久化写入存储(如Spark
1614 2
Fury系列(四):一个比Kryo/Hessian快30~40倍的类型前后兼容序列化器
|
Dubbo 算法 安全
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(二)
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(二)
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(二)
|
SQL 存储 Java
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(一)
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(一)
Java序列化案例demo(包含Kryo、JDK原生、Protobuf、ProtoStuff以及hessian)(一)
|
XML JSON Dubbo
【优雅代码】12-hessian、kryo、json序列化对比
平常我们在使用rpc调用或者将其持久化到数据库的时候则需要将对象或者文件或者图片等数据将其转为二进制字节数据,那么各自的优劣是什么呢。
【优雅代码】12-hessian、kryo、json序列化对比
|
程序员 应用服务中间件 Dubbo
Hessian序列化过程中Map的问题
开篇  近期线上dubbo不停的报Hessian反序列化的警告日志,虽然不影响正常使用但作为有追求的程序员还是再一次尝试解决下,之所以说再一次是因为前一次尝试解决,但是没解决成功。  错误信息如下,结论是在consumer端序列化了object.map对象,在provider端解析不到object这个类,有兴趣可以继续下面的分析。
20079 0
下一篇
DataWorks