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はhttpclient4.1alpha用ですが、httpclient4.0.1を使用しています。

ソースを確認します。4.0.1トランクの間にSerializableインターフェースが追加されたことを確認します。

于 2010-06-09T20:27:54.910 に答える