Hallo,
ich erhalte beim Senden eines einfachen serialisierten Objekts innerhalb einer TCP-Verbindung folgenden Fehler:
Gesendet wird ein Objekt folgender Klasse:
Gesendet wird es von der Server-Seite:
Empfangen wird es von der Client-Seite:
Noch ein paar Anmerkungen:
1. Die Exception tritt beim Lesen des eingegangenen Objektes auf (Client, Zeile 17).
2. Bei dem Programm handelt es sich um eine Android-App, d.h. ich programmiere mit Eclipse und teste es dann auf 2 Samsung Galaxy Note 10.1. Beide greifen also auf die gleiche Quelldatei zu.
3. Früher im Programm wird bereits vom Client zum Server ein Objekt einer anderen Klasse gesendet, was problemlos funktioniert.
Ich hoffe, Ihr könnt mir weiterhelfen, was diesen Fehler auslöst und wie ich ihn beheben kann.
Danke!
ich erhalte beim Senden eines einfachen serialisierten Objekts innerhalb einer TCP-Verbindung folgenden Fehler:
Code:
java.io.InvalidClassException: Read null attempting to read class descriptor for object
Gesendet wird ein Objekt folgender Klasse:
Java:
public class CodeMessage implements Serializable
{
private static final long serialVersionUID = 3850374419322130176L;
private int code;
public CodeMessage(int code){this.code = code; }
public int getCode(){return code;}
}
Gesendet wird es von der Server-Seite:
Java:
public class TCPServer extends Thread
{
private ObjectOutputStream out;
[ . . . ]
public boolean sendMessage(Object object)
{
boolean success;
if(out == null)
{
success = false;
}
else
{
try {
out.writeObject(object);
} catch (IOException e) { Log.e("TCPServer sendMessage()", e.getMessage());
return false; }
success = true;
}
return success;
}
}
Empfangen wird es von der Client-Seite:
Java:
public class TCPClient extends Thread
{
private ObjectInputStream in;
[ . . . ]
@Override
public void run()
{
super.run();
try {
// messages-recieving-loop
while (!isInterrupted())
{
// Try to read sent object
Object message = in.readObject();
// pass it to the listener
if ((message != null) && (messageListener != null))
{
messageListener.messageReceived(message);
}
}
} catch (InvalidClassException e){
Log.e("TCPClient.run() InvalidClassException", e.getMessage());
} catch (Exception e){ Log.e("TCPClient.run()", e.getMessage()); }
}
}
Noch ein paar Anmerkungen:
1. Die Exception tritt beim Lesen des eingegangenen Objektes auf (Client, Zeile 17).
2. Bei dem Programm handelt es sich um eine Android-App, d.h. ich programmiere mit Eclipse und teste es dann auf 2 Samsung Galaxy Note 10.1. Beide greifen also auf die gleiche Quelldatei zu.
3. Früher im Programm wird bereits vom Client zum Server ein Objekt einer anderen Klasse gesendet, was problemlos funktioniert.
Ich hoffe, Ihr könnt mir weiterhelfen, was diesen Fehler auslöst und wie ich ihn beheben kann.
Danke!