MINA客户端接收响应信息时出现不完整现象

迷失的考拉 发布于 2012/03/19 21:46
阅读 2K+
收藏 0
在一个金融项目中采用MINA开发一套转换系统,但遇到一个问题。问题是这样的,在客户端向服务器端发起请求,服务端是别家公司的系统,返回的结果报文有点大,这时在MINA客户端接收报文时,总是出现数据接收不完整的现象。由于各种原因没能解决这个问题。还请哪位MINA达人给指点迷津。测试观察发现,在接收响应报文时总是先接收一个2048,然后,在接收剩余的报文,但接收的过程中会出现接收不完整的现象,由于报文是XML的格式,dom4j来解析XML报文不完整就出现异常了。在此先谢谢各位了。
加载中
0
szf
szf

用累积协议解码器(CumulativeProtocolDecoder)作为基类派生子类处理报文,接收完整再切断缓冲区,就不会出现这样的问题了

迷失的考拉
迷失的考拉
@szf : 在WINXp环境测试是可以收完整的报文信息,但是把程序放到测试环境服务器(SUSE-Linux)上就会的不到完整报文了呢?还请指点一二。
szf
szf
@HERO : 在decoder中处理,还是在hander中处理message,是你的设计问题了,跟mina就没啥关系了~
迷失的考拉
迷失的考拉
请教,我在使用了CumulativeProtocolDecoder的派生子类处理了报文,后续的处理也在这个类里,会不会对这个类的代码造成污染,而不纯粹是一个解码类了。如果不在这里完成后续跳出该怎么得到具体的报文呢?谢谢!
迷失的考拉
迷失的考拉
@szf : 十分感谢。找到问题的突破口了!
szf
szf
@HERO : 看看mina2的入门教程,理解好connector,handler,decoder,encoder的关系就清楚了,但你如果不清楚的话,没理由能收到数据的啊,我看你的问题就是一个解码问题而已
下一页
0
jackliang
jackliang

嗯,貌似你这个比我做的要负责点!

迷失的考拉
迷失的考拉
这样做于公于私都是有好处的!自己学了知识,同时公司也少了些麻烦!
返回顶部
顶部