Pergunta

Estou bastante confuso ... estou lendo aqui e BasicClientCookie claramente implementa serializável por javadoc:http://hc.apache.org/httpcomponents-client/httpclient/apidocs/org/apache/http/impl/cookie/basicclientcookie.html

No entanto, meu script Groovy simples:

#!/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)
}

Saídas:

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)

Eu verifiquei e não tenho outras versões de httpclient em nenhum lugar do ClassPath (se eu for retirar as uvas, ele não pode encontrar o arquivo).

Obrigada! Misha Koshelev

Foi útil?

Solução

O Javadoc ao qual você vinculou é para o HttpClient 4.1 Alpha, mas você está usando o HTTPClient 4.0.1.

Verifique a fonte, ele confirma que a interface serializável foi adicionada entre 4.0.1 e a porta-malas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top