Я собираюсь использовать весеннюю сессию для написания HttpSessions в Redis. Я в основном помещаю карты в сеанс, которые затем должны быть записаны в Redis.JSon Сериализация финального класса в Redis с использованием Jackson ObjectMapper и весенней сессии
Я использую в org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
как Serializer, который настраивает Джексон ObjectMapper с: mapper.enableDefaultTyping(DefaultTyping.NON_FINAL, As.PROPERTY);
но установка уже заявляет, что не работает ни с чем окончательным (http://wiki.fasterxml.com/JacksonPolymorphicDeserialization).
я узнал, что где-то в CMS я использую (HippoCMS) FreemarkerServlet
инициализируется, включая следующий код:
void initializeSessionAndInstallModel(HttpServletRequest request,
HttpServletResponse response, HttpSessionHashModel sessionModel,
HttpSession session)
throws ServletException, IOException
{
session.setAttribute(ATTR_SESSION_MODEL, sessionModel);
initializeSession(request, response);
}
К сожалению HttpSessionHashModel
является конечным классом и записывается в сессию. Сериализатор записывает только sth. например {"empty":true}
в Redis, что делает невозможным десериализацию десериализатора JSON-причины. В JSon записывается атрибут @class
.
Как сообщить ObjectMapper добавить атрибут @class для конечного класса. Если это невозможно, что может быть возможным решением моей проблемы?