posts - 30,  comments - 28,  trackbacks - 0

    项目第二阶段,管理客户端和管理服务器。架构C/S,技术RMI
    今天上午做了一个简单的测试系统,用来测试前两天所编写的构件:写了一远程服务器,一个命令行客户端。OK,编译时也没出错。
    然而运行起来,可怕的事情发生了:先前写的实体类无法传送给客户端。程序抛出了异常。仔细观察,发现是产生了对象无法序列化的IO异常。
    RMI底层通过TCP协议进行通讯,ObjectInputStream和ObjectOutputStream来负责对象的输入和输出。实在是不明白,以前做RMI系统实验的时候,根本没遇到这种序列化异常:传String就传String,传Vector就传Vector。
   猜想应该是我写的那些类无法序列化的缘故。参考了API文档,发现这个东西:MarshalledObject,可以对其构造方法的对象进行序列化(说穿了就是变成字节流)。
  迅速改造了测试程序,OK,能穿对象了。但是.....序列化以后无法反序列化!天,类对象实例全部变成了组毫无意义的字节数组。
  应该有其他的办法,SUN的Java文档实在不能和MSDN相比,太过于简单啦。
  经过3个小时的资料查阅和测试,终于找到了种正确而且异常简单的方法:对先前的代码进行简单的重构:让他们统统实现java.io.Serializable接口。只改一行代码,全部解决!
  ^_^

posted on 2006-07-24 14:44 murainwood 阅读(272) 评论(0)  编辑  收藏 所属分类: Java读书笔记

只有注册用户登录后才能发表评论。


网站导航:
 
<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

如果真的给你一片天,你敢不敢要?

常用链接

留言簿(3)

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜