Hessian 序列化,反序列

xiaoxiao2021-02-28  96

把Java对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为Java对象的过程称为对象的反序列化。

对象的序列化主要有两种用途: 1)数据介质的存储 2)数据网络传输

Hessian 实现运程通信的 Library Hessian 是由 caucho 提供的一个基于 binary-RPC 实现的远程通讯 library 。

1 、是基于什么协议实现的? 基于 Binary-RPC 协议实现。

2 、怎么发起请求? 需通过 Hessian 本身提供的 API 来发起请求。

3 、怎么将请求转化为符合协议的格式的? Hessian 通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。

4 、使用什么传输协议传输? Hessian 基于 Http 协议进行传输。

5 、响应端基于什么机制来接收请求? 响应端根据 Hessian 提供的 API 来接收请求。

6 、怎么将流还原为传输格式的? Hessian 根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。

7 、处理完毕后怎么回应? 处理完毕后直接返回, hessian 将结果对象进行序列化,传输至调用端。

对象序列化-java

public byte[] serialize(Object obj) throws Exception { if(obj==null) throw new NullPointerException(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(os); out.writeObject(obj); return os.toByteArray(); } public Object deserialize(byte[] by) throws Exception { if(by==null) throw new NullPointerException(); ByteArrayInputStream is = new ByteArrayInputStream(by); ObjectInputStream in = new ObjectInputStream(is); return in.readObject(); }

对象序列化-hessian

public byte[] serialize(Object obj) throws IOException{ if(obj==null) throw new NullPointerException(); ByteArrayOutputStream os = new ByteArrayOutputStream(); HessianOutput ho = new HessianOutput(os); ho.writeObject(obj); return os.toByteArray(); } public Object deserialize(byte[] by) throws IOException{ if(by==null) throw new NullPointerException(); ByteArrayInputStream is = new ByteArrayInputStream(by); HessianInput hi = new HessianInput(is); return hi.readObject(); }
转载请注明原文地址: https://www.6miu.com/read-68330.html

最新回复(0)