spymemcached从SerializingTranscoder for BasicClientCookie抛出ClassNotFoundException

时间:2013-02-05 21:08:31

标签: heroku httpclient spymemcached

我正在使用spymemcached版本2.8.1来读取cookie对象,但我一直遇到以下异常:

app[web.1]: WARN net.spy.memcached.transcoders.SerializingTranscoder:
                 Caught CNFE decoding 513 bytes of data
app[web.1]: java.lang.ClassNotFoundException
                 org.apache.http.impl.cookie.BasicClientCookie
  1. 我正在使用httpclient版本4.1.1:https://dl.dropbox.com/u/6207935/Screen%20Shot%202013-02-05%20at%202.47.19%20PM.png 里面有BasicClientCookie类,所以我不太清楚它为什么“找不到”

  2. 同样基于听说 - 我认为BasicClientCookie已经在4.1.1中标记为Serializable,但确切的javadocs有点难以挖掘,老实说......所以它是一个假设对我而言。无论如何,这个异常似乎与序列化没有关系,但我认为我会把它抛到那里以保证问题的完整性。

  3. 解决此问题会有什么想法?


    更新#1(2013年2月5日)

    这些可能会解决这个问题:

    1. http://code.google.com/p/spymemcached/issues/detail?id=146 - 但是当使用Heroku时,我不知道如何获得与我的应用服务器文件系统相同级别的控制......这里描述的方式。
    2. http://code.google.com/p/spymemcached/issues/detail?id=155 - 不确定如何让spymemcached使用自定义SerializingTranscoder。

1 个答案:

答案 0 :(得分:5)

此处提供的建议有效:http://code.google.com/p/spymemcached/issues/detail?id=155#c2

在将自定义SerializingTranscoder应用于spymemcached之后,唯一的补充就是测试它了

MemcachedClient mc =
new MemcachedClient(
new ConnectionFactoryBuilder()
.setTranscoder(new CustomSerializingTranscoder()) // makes it take effect
.setProtocol(ConnectionFactoryBuilder.Protocol.BINARY)
...