Файл сериализации RPC размещенного режима GWT с неверным определением класса вызывает исключение IncompatibleRemoteServiceException

У меня есть проект GWT в Eclipse, который бросает com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException при использовании режима хоста, поскольку хэш-код RPC-файла сервера не совпадает с хэш-кодом RPC-файла сервера.

Я отследил это до пары классов, которые реализуют com.extjs.gxt.ui.client.data.BeanModelTag, Эти классы, по-видимому, неправильно включены в RPC-файл, созданный сервером кода. Кроме того, имена классов выглядят искаженными.

Например, вместо com.acme.beans.MyBean класс упоминается как com.acme.beans.BeanModel_com_acme_beans_MyBean,

Я подозреваю, что это как-то связано с неправильным путем к классу для моей цели отладки, включая некоторые jar, src dir или другой проект, но я не очень хорошо понимаю, как отлаживать это дальше.

1 ответ

В GXT 2 (текущее значение 3, 4, скорее всего, скоро будет бета) была функция, позволяющая генерировать типы BaseModelData на основе Java-компонента или pojo, что позволяет использовать функции, подобные отражению, которые GXT 2 использовал для рендеринга шаблонов и ячеек сетки (GXT 3 компилирует -временные функции, которые решают, что доступ к свойству вместо этого). BeanModels не предназначены для отправки по проводам - ​​вместо этого вы должны отправлять свой исходный MyBean по проводам.

Этот сгенерированный экземпляр BeanModel предназначен для упаковки оригинального MyBean и доступен только для клиентского кода. Чтобы снова вернуться на сервер, разверните компонент - используйте getBean() чтобы получить основное ПОЖО.

Другие вопросы по тегам