Существуют ли другие возможные причины для получения исключения из политики сериализации GWT? - PullRequest
2 голосов
/ 05 августа 2011

Я пробираюсь через это около недели или около того, и ничего не нашел.Я создаю приложение с помощью GWT, Hibernate и Gilead и пытаюсь выполнить вызов rpc, который загружает список объектов LightEntity из базы данных.Этот вызов работал отлично, пока я не внес минимальное изменение в свой интерфейс rpc - я добавил метод deleteLightEntity.Затем я начал получать эту ошибку:

Type 'com.blah.shared.DomainObject' was not included in the set of types which can be 
serialized by this SerializationPolicy or its Class object could not be loaded. For 
security purposes, this type will not be serialized."

..., которая обычно характерна для объектов, которые не имеют конструктора без аргументов или, возможно, не реализуют Serializable или IsSerializable.За исключением моих DomainObject с.И все они работали правильно, прежде чем я добавил этот метод в RPC.Я даже пытался удалить метод, который я добавил, и перекомпилировать, но, похоже, он не работает.Я также вручную удалил сгенерированные файлы .gwt.rpc и очистил кеш браузера.Если кто-нибудь знает, что может быть причиной этих проблем, я был бы очень рад услышать это:)

1 Ответ

2 голосов
/ 05 августа 2011

Если ваш класс реализует Serializable (а не IsSerializable), он будет включен в политику сериализации только в том случае, если на него есть ссылка в интерфейсе RPC, поэтому проверьте это. Если у вас есть причина не ссылаться на этот класс, вы можете использовать этот обходной путь .

Кроме того, поскольку в ошибке упоминается класс DomainObject, который, как я полагаю, является вашим глобальным суперклассом, я постараюсь сделать так, чтобы он также реализовывал Serializable или IsSerializable (в дополнение к своим подклассам).

Это также поможет, если вы покажете нам некоторый исходный код.

...