`
aa87963014
  • 浏览: 154401 次
  • 性别: Icon_minigender_1
  • 来自: 布尼塔尼亚
社区版块
存档分类
最新评论

一个关于 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,程序员大部分时间都浪费在这种 粗心大意的事情上了

1
4
分享到:
评论
2 楼 aa87963014 2013-08-02  
wujiyongheng 写道
都是直接把Date转成long 来传。。。


这个是当然的
1 楼 wujiyongheng 2013-08-01  
都是直接把Date转成long 来传。。。

相关推荐

    软件测试十大典型低级错误

    为了避免这些错误,测试团队应当建立全面的测试计划,采用自动化测试工具提升效率,同时加强测试人员的专业培训,确保每一个测试环节都得到充分的关注和严格的执行。通过持续改进测试方法和流程,可以显著提高软件...

    测试典型低级错误

    "测试典型低级错误"这个主题涵盖了编程中常见的错误类型,这些错误往往由于程序员的疏忽或者对语言理解不深导致。低级错误通常包括语法错误、逻辑错误和运行时错误,它们可能影响程序的执行或导致意料之外的结果。 ...

    低级错误,你犯过这种错误吗?

    5. **异常处理不完整**:在`addProduct1`方法中,捕获`BMEException`后只记录了一个简单的错误信息,没有提供足够的上下文。当捕获到异常时,应记录异常的详细信息,包括异常类型和消息,以帮助诊断问题。 6. **...

    java十大低级错误(续3)

    java十大低级错误详解和案例,灰常不错哦!!

    java 10大低级错误

    对于每一个方法,都应该添加适当的注释,包括但不限于方法的功能简介、参数含义等。 **正确示例**: ```java /** * 发送消息方法 */ public void sendMsg() { // 实现逻辑 } /** * 根据内容ID和产品类型查询...

    Java十大低级错误.doc

    Java编程中的十大低级错误是每个开发者应该避免的常见陷阱,它们不仅影响代码的可读性和维护性,还可能导致程序运行时出现各种异常。以下是这些错误的详细解释和改进建议: 1. **命名规范**:良好的命名规范是提高...

    java编程十大低级错误

    Java编程中的低级错误是开发者在编码过程中容易犯的一些常见失误,这些错误往往会影响代码的可读性、可维护性和程序的稳定性。以下是对标题和描述中提到的十大低级错误的详细解释: 1. **命名不规范**:命名应该...

    PCB设计低级错误综析

    例如,PCB设计中,通常会有一个由多个组件构成的控制系统,包括传感器、信息入口、处理器、功率接口和执行器件等。为了防止犯错,设计者需要对这些组件的功能和特性有深入的了解。 二、端子的选择与使用 端子在PCB...

    PPT设计规范手册,讲解PPT设计、制作中的一些常见问题。避免低级错误发生。

    2. 图表篇选择图表错误:选择合适的图表类型,例如,条形图用于比较两个变量,而不是求二者总和。 3. 图表篇数据排序错误:确保数据按照大小顺序、字母顺序或者价值顺序排列,不要让数据排序混乱。 4. 图表篇确保...

    审计报告中的11个低级错误,千万别犯!.docx

    审计报告中的11个低级错误,千万别犯!.docx

    华为常见C、C++软件编程低级错误:变量

    华为常见C、C++软件编程低级错误:变量 C和C++语言是我司的主流编程语言,然而C/C++具有很多强大的语言特性,从而导致C/C++非常复杂,使得代码更容易出现BUG、难以阅读和维护。

    C++十大低级错误和C++编程规范

    然而,由于其复杂的特性和语法,C++编程过程中容易犯一些低级错误,这些错误可能导致程序崩溃、内存泄漏或者难以调试的问题。了解并避免这些错误是成为一名熟练C++程序员的关键。以下是"十大低级错误和C++编程规范...

    IEEE754 to DSP(VC33)(64位转40位) 改进版算法 (更正之前的低级错误)

    在原始转换算法中,可能存在一个低级错误,导致转换后的最后一位数值不正确。这可能是由于舍入策略不当,或者在处理边界情况时的错误造成的。 改进版算法的核心目标是确保转换的准确性,特别是修正最后一位的错误。...

    C++编程中的十大低级错误

    使用野指针是C++编程中另一个常见的错误。野指针可能导致程序崩溃或产生不确定的结果。例如:`void func(){char *p;if (NULL != p){ printf("%s", p); }}` 在这里,我们需要检查指针是否为空,以避免使用野指针的...

    Java十大低级错误

    Java十大低级错误,一般容易犯的错误,以及解决方法

    软件编程低级错误:内存越界

    C和C++语言是我司的主流编程语言,然而C/C++具有很多强大的语言特性,从而导致C/C++非常复杂,使得代码更容易出现BUG、难以阅读和维护。

    企业基础架构AD管理的两个低级错误

    第一个故障现象:域控制器的配置错误 在一个公司中,最初由于成本的原因只部署了一台域控制器,后来增加了一台域控制器,部署过程很简单,但是在测试中发现关闭最早的一台域控制器之后,Exchange无法正常工作,当前...

    java10大低级错误

    Java编程中的十大低级错误是新手开发者常犯的典型错误,这些错误往往导致代码质量下降,可读性差,甚至引发程序运行时的异常。以下是对这些错误的详细解释: 1. **命名不规范**:良好的命名是代码可读性的基础。...

    ios-一个关于数组越界、字典key与value为nil情况下导致的低级错误的线上Crash的避免的仓库.zip

    如果你尝试访问超出这个范围的索引,如一个长度为3的数组访问索引4,就会触发数组越界异常,程序会立即崩溃。避免这种错误的方法包括: 1. 在访问数组元素之前,检查索引是否在合法范围内。 2. 使用安全的数组访问...

Global site tag (gtag.js) - Google Analytics