Передача объектов между сервером и клиентом с использованием GWT RPC
Я разрабатываю приложение GWT, которое использует Hibernate для сохранения данных на стороне сервера. Есть объекты типа "Клиенты" с несколькими атрибутами, такими как "Строки", "Целые числа" и "Даты".
Моя проблема состоит в том, чтобы передать эти объекты клиенту для их отображения (а также изменить / создать их и отправить их на сервер). Но я всегда получаю ошибки сериализации при попытке использовать мои собственные типы. Я читал книги, искал в Интернете, читал исходный код и пробовал образцы. Я наконец "преобразовал" атрибуты моих Объектов в поля ArrayList, но я думаю, что это не тот путь, которым я должен идти.
В настоящее время я использую gwt-2.0.3 с Eclipse.
Ждем ваших предложений!
1 ответ
Эта проблема возникает из-за того, что hibernate использует свои собственные наборы (PersistentSet и аналогичные). Вы должны использовать шаблон DTO или Gilead. Я бы посоветовал Gilead (ранее известный как hibernate4gwt), вы должны настроить его, и ваша проблема должна исчезнуть (сначала прочтите их документацию, чтобы узнать, в чем проблема и как Gilead ее решает).
Если ваша проблема не связана с отложенной загрузкой / коллекцией, ваши объекты не будут сериализуемыми. Убедитесь, что ваши классы реализуют интерфейс Serializable и имеют конструкторы с нулевым аргументом.