Spymemcached - 身份验证对象的非序列化对象

时间:2015-08-01 21:14:24

标签: java ehcache serializable spymemcached

我正在尝试使用Spymemcached for java。

我已经成功创建了一个MemCachedClient,我正在尝试这样做:

mc.set(token,0,authentication);

Token是一个字符串,认证对象是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(new Element(token,authentication));

有谁知道为什么它不适用于spymemcached?我正在使用:

compile 'net.spy:spymemcached:2.12.0'

1 个答案:

答案 0 :(得分:0)

好的 - 我明白了。由于某种原因,我的一个流入Authentication对象的类不可序列化。要使身份验证可序列化,进入我的身份验证对象的所有类都需要可序列化。

我刚刚为该特定对象类实现了Serializable,并且spymemcached工作。