当前位置: 技术问答>java相关
一个 java.io.NotSerializableException的问题。
来源: 互联网 发布时间:2015-03-29
本文导语: 我声明了几个类: my.system.ProcItem //保存进程信息 my.sysh.SysMsg my.msg.SysProcMsg //继承cm.sys.SysMsg,并带有java.util.Vector procList ;并且可以addItem(ProcItem obj) ; my.sysh.RemoteHandler my.sysh.SysHandler 在RemoteHandler里...
我声明了几个类:
my.system.ProcItem //保存进程信息
my.sysh.SysMsg
my.msg.SysProcMsg //继承cm.sys.SysMsg,并带有java.util.Vector procList ;并且可以addItem(ProcItem obj) ;
my.sysh.RemoteHandler
my.sysh.SysHandler
在RemoteHandler里收集信息:
SysMsg colletInfo()
{
SysMsg result ;
....
case Proc:
SysProcMsg procMsg = new SysProcMsg() ;
procMsg.addItem(obj) ;
result = (CmSysMsg)procMsg ;
......
return result ;
}
在SysHandler通过RemoteHandler获取信息:
SysMsg getInfo()
{ SysMsg result ;
RemoteHandler rhandler ;
.....
case Proc:
result=rhandler.collectInfo() ;就在这里throw了NotSerializableException
......
return result ;
}
整个exception是这样的:
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.io.WriteAbortedException: Writing aborted by exception; java.io.NotSerializableException: my.system.ProcItem
程序在收集其他信息时时没问题的,就是因为收集进程信息时用了一个自定义的类my.system.ProItem,请问该如何解决?
my.system.ProcItem //保存进程信息
my.sysh.SysMsg
my.msg.SysProcMsg //继承cm.sys.SysMsg,并带有java.util.Vector procList ;并且可以addItem(ProcItem obj) ;
my.sysh.RemoteHandler
my.sysh.SysHandler
在RemoteHandler里收集信息:
SysMsg colletInfo()
{
SysMsg result ;
....
case Proc:
SysProcMsg procMsg = new SysProcMsg() ;
procMsg.addItem(obj) ;
result = (CmSysMsg)procMsg ;
......
return result ;
}
在SysHandler通过RemoteHandler获取信息:
SysMsg getInfo()
{ SysMsg result ;
RemoteHandler rhandler ;
.....
case Proc:
result=rhandler.collectInfo() ;就在这里throw了NotSerializableException
......
return result ;
}
整个exception是这样的:
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.io.WriteAbortedException: Writing aborted by exception; java.io.NotSerializableException: my.system.ProcItem
程序在收集其他信息时时没问题的,就是因为收集进程信息时用了一个自定义的类my.system.ProItem,请问该如何解决?
|
public class ProcItem implement Serializable
|
远程传输对象一定要序列化
我看你用的存储信息的数据结构没有实现Serializable
我看你用的存储信息的数据结构没有实现Serializable