The data that is received by a bug is always said to be missing from the class. I looked at the serialization of the implementation of the class name is also the same and then in the server to receive the object when the general report this do, online search a lot of the last found that the original package name is not the same, resulting in two different classes of the program is really a strict thing ah paste code to everyone to see
Java.lang.ClassNotFoundException:xxxxxxxxxxxx
At Java.net.urlclassloader$1.run (urlclassloader.java:366)
At Java.net.urlclassloader$1.run (urlclassloader.java:355)
At java.security.AccessController.doPrivileged (Native Method)
At Java.net.URLClassLoader.findClass (urlclassloader.java:354)
At Java.lang.ClassLoader.loadClass (classloader.java:423)
At Sun.misc.launcher$appclassloader.loadclass (launcher.java:308)
At Java.lang.ClassLoader.loadClass (classloader.java:356)
At JAVA.LANG.CLASS.FORNAME0 (Native Method)
At Java.lang.Class.forName (class.java:264)
At Java.io.ObjectInputStream.resolveClass (objectinputstream.java:622)
At Java.io.ObjectInputStream.readNonProxyDesc (objectinputstream.java:1593)
At Java.io.ObjectInputStream.readClassDesc (objectinputstream.java:1514)
At Java.io.ObjectInputStream.readOrdinaryObject (objectinputstream.java:1750)
At Java.io.ObjectInputStream.readObject0 (objectinputstream.java:1347)
At Java.io.ObjectInputStream.readObject (objectinputstream.java:369)
At Xxxxxxxxxxxxxxxxx (testmetadata.java:103)
Hint class can not find, but in fact the class file is actually exist, then the Internet search. Sure enough to find the answer.
Can participate in the article: http://www.javapractices.com/topic/TopicAction.do?Id=45
The main two points:
1) need the same package name
2) the same serialization ID
Package testserverandclient;
Import java.io.IOException;
Import Java.io.ObjectOutput;
Import Java.io.ObjectOutputStream;
Import Java.net.Socket;
Import java.net.UnknownHostException;
public class Client {
/**
* Welcome to use this source code if you have any questions, please add QQ Group: 151648295
*
*/
/**
* @param args
*/
public static void Main (string[] args) {
TODO auto-generated Method Stub
New Client ();
}
Public client () {
try {
Socket s=new socket ("127.0.0.1", 9999);
ObjectOutputStream oos=new ObjectOutputStream (S.getoutputstream ());
User U=new user ();
U.setname ("xiangqiao123");
U.setpass ("123");
Oos.writeobject (U);
} catch (Exception e) {
TODO auto-generated Catch block
E.printstacktrace ();
}
}
}
Package testserverandclient;
Import java.io.IOException;
Import Java.io.ObjectInputStream;
Import Java.net.ServerSocket;
Import Java.net.Socket;
public class Server {
public static void Main (string[] args) {
New Server ();
}
Public Server () {
try {
ServerSocket ss=new ServerSocket (9999);
Socket s=ss.accept ();
ObjectInputStream ois= New ObjectInputStream (S.getinputstream ());
User user= (user) ois.readobject ();
SYSTEM.OUT.PRINTLN (user);
} catch (Exception e) {
E.printstacktrace ();
}
}
}
Package testserverandclient;
Import java.io.Serializable;
public class User implements Serializable {
private String name;
Private String Pass;
Public String GetName () {
return name;
}
public void SetName (String name) {
THIS.name = name;
}
Public String Getpass () {
return pass;
}
public void SetPass (String pass) {
This.pass = pass;
}
}
Inverse serialization of objects error: java.lang.ClassNotFoundException