java - Sending / Receiving through a ObjectStream serialization issue -
so question.
i have client , server java program. each 1 establishes , manages objectinputstream/objectoutputstream other.
i want able send objects (given objects sent extend packet class made). issue though client , server may have exact same code packet class, getting error:
java.lang.classnotfoundexception: shared.packet0connect @ java.net.urlclassloader$1.run(unknown source) @ java.net.urlclassloader$1.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ java.net.urlclassloader.findclass(unknown source) @ java.lang.classloader.loadclass(unknown source) @ sun.misc.launcher$appclassloader.loadclass(unknown source) @ java.lang.classloader.loadclass(unknown source) @ java.lang.class.forname0(native method) @ java.lang.class.forname(unknown source) @ java.io.objectinputstream.resolveclass(unknown source) @ java.io.objectinputstream.readnonproxydesc(unknown source) @ java.io.objectinputstream.readclassdesc(unknown source) @ java.io.objectinputstream.readordinaryobject(unknown source) @ java.io.objectinputstream.readobject0(unknown source) @ java.io.objectinputstream.readobject(unknown source) @ com.mooman219.gmail.server.receivepacketthread.run(receivepacketthread.java:19) it appears java thinks packet class on server different class on client.
is there way can fix (aside having same package names on both client , server)?
the data transport object classes must same class -- must have same qualified class name (i.e. same package name , same classname), not identical contents.
the byte stream emitted serialisation process includes qualified class name of object (as fqcn of superclasses). includes serialised versions of non-transient, non-static fields (unless you've customised serialisation process using 1 of hook methods).
here's example of byte stream. note in example, class in default (empty) package makes illustration of we're discussing bit less clear.
Comments
Post a Comment