簡體   English   中英

java網絡中的ClassNotFoundException?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM