0

我很困惑......我在这里阅读,BasicClientCookie清楚地实现了每个 JavaDoc 的 Serializable:http: //hc.apache.org/httpcomponents-client/httpclient/apidocs/org/apache/http/impl/cookie/BasicClientCookie.html

但是,我的简单 Groovy 脚本:

#!/usr/bin/env groovy
@Grapes(
    @Grab(group='org.apache.httpcomponents', module='httpclient', version='4.0.1')
)
import org.apache.http.impl.cookie.BasicClientCookie
import java.io.File

def cookie=new BasicClientCookie("name","value")
println cookie instanceof Serializable
def f=new File("/tmp/test")
f.withObjectOutputStream() { oos->
    oos.writeObject(cookie)
}

输出:

false
Caught: java.io.NotSerializableException: org.apache.http.impl.cookie.BasicClientCookie
        at t$_run_closure1.doCall(t.groovy:12)
    at t.run(t.groovy:11)

我已经检查过了,并且在类路径中的任何地方都没有其他版本的 HttpClient(如果我取出 Grapes 语句,它就找不到文件)。

谢谢!米沙·科舍列夫

4

1 回答 1

1

您链接到的 javadoc 用于 httpclient 4.1 alpha,但您使用的是 httpclient 4.0.1。

检查来源,它确认 Serializable 接口已添加在4.0.1trunk之间。

于 2010-06-09T20:27:54.910 回答