一个关于 protostuff 的低级错误

protostuff 是什么就不多说了,前段时间用来做通信的序列号模块

 

直入主题,

就是关于probuff 不支持的格式的字段,例如Date

 

通信的时候,客户端反序列化报错

异常信息也没办法google出一个结果来

我反复查看是否字节解析错误,是否粘包没处理好,但是没发现问题.

然后我把服务端序列化的字节存储起来,在服务端上直接反序列化 结果还是一样的错误!!!!WTF

 

万念俱灰之下,我开始考虑类里面定义的常量是否影响结果

最后我想起probuff部分类型是不支持的,例如 Date

 

再想起实体里面有Date 类型的属性.立马删除测试.

结果还是不行!project 也记得 clean了. 然后所有project clean之后再测试,结果 OK!

 

这里,首先我得承认对probuff的认识不够深刻,

然后我想对

protostuff 说:你tmd 在生成Schema的时候检测下会死啊!!

不支持的字段你提示一下会死啊!!!!!!!!!!!!!!!!!

 

 

 写完bolg 继续测试,结果发现 报错了,第二天再测试 结果注意到了1个情况!!

因为习惯copy  序列化用的是 ProtostuffIOUtil , 反序列化用的是 ProtobufIOUtil 

 

ProtostuffIOUtil 和 ProtobufIOUtil !!!!!!!!!!!! 我一直以为 protostuff 只是一个 protobuff的序列化工具

 

居然 2个可能序列化 方式不同! 导致了 ProtostuffIOUtil  生成的byte 不能用 ProtobufIOUtil  反序列化!!!!!!!!!!!!!!!!!!

 

我现在想知道 protostuff方式 序列化的东西 能不能在 其他客户端使用!因为 protostuff 是java的, 大概没有其他端

如果利用protostuff的性能优势,扩展性会受到限制, 以后再说吧

 

OMG,程序员大部分时间都浪费在这种 粗心大意的事情上了

你可能感兴趣的:(protostuff,probuff)