Moisen,
ich habe versucht ein kleines Programm zu schreiben welches mit ObjectInputStream und ObjectOutputStream über Sockets Objekte austauscht.
Der Client und der Server liegen in 2 separaten Java Projekte. z.B. src.server.* und src.client aber in getrennten Projekten.
Nun habe ich ein Object das Übertragen werden soll (Client.java):
Die gleiche Klasse mit der gleichen SerialVersionUID befindet sich im Verzeichnis des Servers.
Wenn ich jetzt auf dem Server diese Klasse instanziere und über den ObjectOutputStream senden will kommt es auf der Clientseite zu einer ClassCastException.
Wenn ich den Server und Client in das selbe Projekt kopiere und die gleiche Client.java via import einfüge klappt es. Nur sind der Server und Client getrennt und sollten auch in unterschiedlichen Projekten liegen...
Was kann ich gegen die Exception unternehmen.
Vielen Dank!
ich habe versucht ein kleines Programm zu schreiben welches mit ObjectInputStream und ObjectOutputStream über Sockets Objekte austauscht.
Der Client und der Server liegen in 2 separaten Java Projekte. z.B. src.server.* und src.client aber in getrennten Projekten.
Nun habe ich ein Object das Übertragen werden soll (Client.java):
Java:
public class Client implements Serializable {
private static final long serialVersionUID = 3142598191535415112L;
private String computerName;
private String ipAddress;
public Client() {
}
public String getComputerName() {
return computerName;
}
public void setComputerName(String computerName) {
this.computerName = computerName;
}
public String getIpAddress() {
return ipAddress;
}
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
@Override
public String toString() {
return this.computerName;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((computerName == null) ? 0 : computerName.hashCode());
result = prime * result
+ ((ipAddress == null) ? 0 : ipAddress.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Client other = (Client) obj;
if (computerName == null) {
if (other.computerName != null)
return false;
} else if (!computerName.equals(other.computerName))
return false;
if (ipAddress == null) {
if (other.ipAddress != null)
return false;
} else if (!ipAddress.equals(other.ipAddress))
return false;
return true;
}
}
Wenn ich jetzt auf dem Server diese Klasse instanziere und über den ObjectOutputStream senden will kommt es auf der Clientseite zu einer ClassCastException.
Java:
Client client = (Client) ois.readObject();
Wenn ich den Server und Client in das selbe Projekt kopiere und die gleiche Client.java via import einfüge klappt es. Nur sind der Server und Client getrennt und sollten auch in unterschiedlichen Projekten liegen...
Was kann ich gegen die Exception unternehmen.
Vielen Dank!