2015-08-13 9 views
0

У меня есть проект GWT в Eclipse, который генерирует com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException при использовании режима размещения, потому что код hashcode файла RPC-файла кода сервера не соответствует файлу hashcode файла RPC сервера.GWT Hosted Mode RPC Serialization file с неправильным определением класса вызывает IncompatibleRemoteServiceException

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

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

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

ответ

0

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

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

+0

Благодарим за информацию. Я думаю, что компонент будет развернут правильно перед отправкой на сервер. Проблема в том, что я не могу понять, как сгенерированный файл появляется в моем размещенном режиме.rpc, если компонент только клиентской стороны. – Kylos

+0

Без какой-либо попытки показать код (esp для библиотеки, которая почти двух основных версий позади текущей, так ясно работала для многих людей, а затем они двигались дальше ...), ее трудно сказать так или иначе, почему это не так за работой. Тем не менее, он появляется в файле манифеста .rpc, потому что компилятор GWT * может видеть его, потому что он его создал. Тот факт, что он существует, означает, что клиентский код знает, как его/сериализовать, но ничего не говорит о том, есть ли юридический код, который может отправить его на сервер или нет. –

 Смежные вопросы

  • Нет связанных вопросов^_^