关于使用Mina做客户端和服务端传递对象的问题
2014-11-15 17:26
239 查看
刚才使用Mina搭建的客户端和服务端进行消息对象的传递通讯,结果服务端总是报自己的ServerProtocolHandler Exception!
客户端和服务端是分别建的两个单独的工程,两者都一致地使用了ObjectSerializationCodecFactory过滤器,Message消息类也implements了Serializable接口
看上去好像没什么问题,但就是报ServerProtocolHandler Exception!统一用TextLineCodecFactory传递String字符串时就没问题,然后网上查了半天查到下面一段:
1. 首先是客户端和服务端的过滤器要一致,此问题容易导致异常:java.nio.charset.MalformedInputException
2.
要传递的对象在客户端和服务端要传递的类都要实现接口java.io.Serializable; 如果这个对象内部引用了其他类,那么这个“其他类”也是要实现java.io.Serializable接口的,否则容易产生java.io.NotSerializableException
3.
传递的对象所在的包(没错,例如User类在服务端和客户端下都应处于package com.test之下)、且类名等最好一致
到这里,终于看到自己工程的问题所在了,是的,问题就出在3这里了,自己客户端和服务端两个工程中的Message消息类所在包名不一致!
经修改后重新进行客户端和服务端的消息对象通讯就OK啦~ 这里的原因在于,两个Message所在的包名不一致,即属于不同的包,那就是两个不同的类了! 这样用服务端的Message去解析收到客户端的Message就出错了!
客户端和服务端是分别建的两个单独的工程,两者都一致地使用了ObjectSerializationCodecFactory过滤器,Message消息类也implements了Serializable接口
看上去好像没什么问题,但就是报ServerProtocolHandler Exception!统一用TextLineCodecFactory传递String字符串时就没问题,然后网上查了半天查到下面一段:
使用mina传递对象注意问题点:
1. 首先是客户端和服务端的过滤器要一致,此问题容易导致异常:java.nio.charset.MalformedInputException2.
要传递的对象在客户端和服务端要传递的类都要实现接口java.io.Serializable; 如果这个对象内部引用了其他类,那么这个“其他类”也是要实现java.io.Serializable接口的,否则容易产生java.io.NotSerializableException
3.
传递的对象所在的包(没错,例如User类在服务端和客户端下都应处于package com.test之下)、且类名等最好一致
到这里,终于看到自己工程的问题所在了,是的,问题就出在3这里了,自己客户端和服务端两个工程中的Message消息类所在包名不一致!
经修改后重新进行客户端和服务端的消息对象通讯就OK啦~ 这里的原因在于,两个Message所在的包名不一致,即属于不同的包,那就是两个不同的类了! 这样用服务端的Message去解析收到客户端的Message就出错了!
相关文章推荐
- 使用mina传递对象注意问题点以及常见报错异常处理
- Boost关于bind的使用以及函数对象和传递参数的问题
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- 关于客户端关闭cookie,session是否能继续使用的问题?php
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- 在spring中关于CP30数据库连接池使用oracle数据库是存储blog对象出错的问题
- 关于C#函数对象参数传递的问题
- android 使用socket与pc传递对象的问题
- 关于C#函数对象参数传递的问题
- 关于mentohust认证中出现“不允许使用的客户端类型”问题方案
- 关于ActiveReport使用ActivexViewer输出时,客户端不会提示下载控件的问题.
- 关于WebService传递自定义对象的问题
- AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题
- 关于C#函数对象参数传递的问题
- [错误记录]关于指针传递获得数据使用错误问题....
- 关于CList对象在DLL中的使用问题
- 关于使用vc++调用matlab生成的dll传递数组的问题
- Application对象的使用-数据传递以及内存泄漏问题
- 关于使用jquery与后台交互,传递json对象的使用方法