【发布时间】:2012-06-09 00:39:12
【问题描述】:
所以这是我的问题。
我有一个客户端和一个服务器 java 程序。 各自建立和管理一个ObjectInputStream/ObjectOutputStream。
我希望能够发送对象(鉴于发送的所有对象都将扩展我创建的 Packet 类)。 问题是,即使客户端和服务器可能具有完全相同的数据包类代码,我也会收到错误消息:
java.lang.ClassNotFoundException: shared.Packet0Connect
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.io.ObjectInputStream.resolveClass(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at com.mooman219.gmail.server.ReceivePacketThread.run(ReceivePacketThread.java:19)
看来java认为服务端的Packet类是客户端的不同类。
有没有办法解决这个问题(除了在客户端和服务器上使用相同的包名称)?
【问题讨论】:
标签: java object serialization stream