Hessian 序列化,反序列

把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();  
} 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值