一个关于 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,程序员大部分时间都浪费在这种 粗心大意的事情上了
上一篇: 线程数量与程序性能的关系
下一篇: svn commit 500
推荐阅读
-
关于SQL执行计划错误导致临时表空间不足的问题
-
SQL Server导入导出数据时最常见的一个错误解决方法
-
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
-
mssql关于一个表格结构的另外一种显示(表达意思不变)
-
详解关于element el-button使用$attrs的一个注意要点
-
关于Adsense提升CPC的正确及错误做法小结
-
关于安装LNMP集成包后上传图片报500错误的解决方法
-
Python创建二维数组实例(关于list的一个小坑)
-
sqlserver关于错误“provider: TCP提供程序, error: 40-由于目标机器积极拒绝,无法连接”的解决
-
一个关于最基本的商业logo设计应用参考