2010-06-09 3 views
0

Я совершенно запутался ... Я читаю здесь и BasicClientCookie ясно реализует Serializable на JavaDoc: http://hc.apache.org/httpcomponents-client/httpclient/apidocs/org/apache/http/impl/cookie/BasicClientCookie.htmlorg.apache.http.impl.cookie.BasicClientCookie не сериализуем?

Однако мой простой 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 в любом месте в classpath (если я беру заявление Grapes, это может не найти файл).

Спасибо! Misha Koshelev

ответ

1

С javadoc вы связались с httpclient 4.1 alpha, но вы используете httpclient 4.0.1.

Проверьте источник, он подтверждает, что интерфейс Serializable был добавлен между 4.0.1 и trunk.