Spymemcached — несериализуемый объект для объекта аутентификации

Я пробую Spymemcached для java.

Я успешно создал MemCachedClient и пытаюсь сделать это:

mc.set (токен, 0, аутентификация);

Токен — это строка, а объект аутентификации — это интерфейс Spring Authentication, который расширяет Serializable: http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/core/Authentication.html

Это вызывает исключение несериализуемого объекта:

{
  "timestamp": 1438463381311,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "java.lang.IllegalArgumentException",
  "message": "Non-serializable object",
  "path": "/auth"
}

Когда я попытался сохранить токен и объект аутентификации в Ehcache, он отлично работает, и и ключ, и значение также должны быть сериализуемыми:

Ehcache.put (новый элемент (токен, аутентификация));

Кто-нибудь знает, почему это не работает с spymemcached? Я использую:

compile 'net.spy:spymemcached:2.12.0'

person Simon    schedule 01.08.2015    source источник


Ответы (1)


ОК - я понял это. По какой-то причине один из моих классов, которые перешли в объект аутентификации, не был сериализуем. Чтобы сделать Authentication сериализуемым, все классы, входящие в мой объект Authentication, должны быть сериализуемыми.

Я только что применил Serializable для этого конкретного класса объектов, и spymemcached сработал.

person Simon    schedule 02.08.2015