GWT RPC сериализация - PullRequest
       30

GWT RPC сериализация

0 голосов
/ 25 февраля 2019

У меня есть приложение, использующее RPC GWT, а также Ebean в качестве ORM.Пытаясь обновить Ebean с версии 2.7 до 11.34, я обнаружил, что более новая версия Ebean больше не поддерживает создание подклассов, но использует усовершенствование бина, которое, кажется, сбивает с толку сериализатор gwt.Мы использовали подклассы Ebean и фактически отбросили подкласс для случаев, когда объектный компонент не просто использовался на сервере, но был напрямую передан RPC gwt.

Насколько я вижу, улучшениедобавляет экземпляр класса EntityBeanIntercept к каждому компоненту управления данными.Поскольку мы фактически никогда не используем бины, которые мы возвращаем от клиента к серверу, для прямой записи их в базу данных, мой подход заключался в добавлении CustomFieldSerializer для класса EntityBeanIntercept, который ничего не делает.Однако я все еще получаю

com.google.gwt.user.client.rpc.SerializationException: Type 'io.ebean.bean.EntityBeanIntercept' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded.

Я создал два класса:

com.google.gwt.user.client.rpc.core.io.ebean.bean.EntityBeanIntercept_CustomFieldSerializer
com.google.gwt.user.server.rpc.core.io.ebean.bean.EntityBeanIntercept_ServerCustomFieldSerializer

с пустыми реализациями всех методов сериализации / десериализации.Отладкой я обнаружил, что, тем не менее, EntityBeanIntercept не помещается в белые списки для сериализации / десериализации внутреннего gwt SerializationPolicyLoader.

Нужно ли добавлять эти настраиваемые сериализаторы в некоторую конфигурацию, чтобы их можно было принятьна счет gwt?

Кстати: текущая версия gwt 2.7.

...