[英]ClassNotFoundException in java networking?
我正在編寫一個多線程的Java聊天應用程序,當我通過網絡將MessageStructure對象發送到服務器端時,出現了Class Not Found異常。
服務器端:
@Override
public void run() {
while(true)
{
try {
MessageStructure message=(MessageStructure)input.readObject();
ServerSocket.ProcessIncomingMessage(ThreadId, message);
} catch (IOException ex) {
Logger.getLogger(ChatServerThread.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(ChatServerThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
客戶端:
public void SendMessage(MessageStructure message)
{
try {
output.writeObject(message);
output.flush();
} catch (IOException ex) {
Logger.getLogger(ClientSideSocket.class.getName()).log(Level.SEVERE, null, ex);
}
}
堆棧跟蹤:
java.lang.ClassNotFoundException: nu.connect.client.MessageStructure
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:266)
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 nu.connect.server.ChatServerThread.run(ChatServerThread.java:56)
public class MessageStructure implements Serializable{
public String MessageType;
public String reciever;
public String sender;
public String message;
public MessageStructure(String MessageType, String reciever, String sender, String message) {
this.MessageType = MessageType;
this.reciever = reciever;
this.sender = sender;
this.message = message;
}
}
仔細查看堆棧跟蹤,尤其是這一行:
java.lang.ClassNotFoundException: nu.connect.client.MessageStructure
這里的情況是確實存在MessageStructure類,但是它在服務器代碼中的不同包中。 您可能需要重新設計代碼,以便在兩側都使用相同的包,這將使Java可以找到您的類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.