GWT RPC сериализация
У меня есть приложение, использующее 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.