Я хочу сериализовать объект в GWT, который наследует другие виды объектов в этом коде. Мой результат должен быть System.out.print
:NotSerializableExeption в GWT (ByteArrayOutputStream)
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import com.google.gwt.user.client.rpc.IsSerializable;
import spa.shared.storages.RouteStorage;
public class RouteStorageHelper implements IsSerializable {
public RouteStorageHelper() {
}
public void storeRoutes(RouteStorage routeStorage) {
ByteArrayOutputStream baos;
ObjectOutputStream out;
baos = new ByteArrayOutputStream();
try {
out = new ObjectOutputStream(baos);
out.writeObject(routeStorage);
//byte[] byteArray=baos.toByteArray();
out.close();
byte[] serializedGraph=baos.toByteArray();
System.out.println(serializedGraph);
} catch (Exception sqle) {
System.out.print(sqle);
}
}
Но я получил, это NotSerializableException
, который говорит, что-то не сериализации. Я не могу понять, потому что другие объекты подкласса также получили интерфейс IsSerializable
.
Другие классы с этим интерфейсом: RouteStorage, Storage, Patient, Employee
и т.д ... Вещи я также использую: String, Integer, HashMap, ArrayList, Date (java.util)
и два enums Status and Qualifikation
.
Является ли какой-либо из этих классов не сериализуемым? В GWT есть что-то другое?
Так что мне не нужно делать это так: public class 'RouteStorageHelper реализует IsSerializable, Serializable', но использует только' Serializable'? –
да, вам нужно только «Serializable». см .: http://www.gwtproject.org/doc/latest/FAQ_Server.html#Does_the_GWT_RPC_system_support_the_use_of_java.io.Serializable –