Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

POST - curl - método adiciona

Antes o teste usando o CURL passava um xml como string no método adiciona de CarrinhoResource.java.

Agora que foi serializado com JAXB (e o parâmetro portando é um objeto Carrinho e não mais uma String ) não foi mostrado como pode ser feito o post com o CURL.

     @POST
     @Consumes(MediaType.APPLICATION_XML)
     public Response adiciona(Carrinho carrinho) {
        new CarrinhoDAO().adiciona(carrinho);
        URI uri = URI.create("/carrinhos/" + carrinho.getId());
        return Response.created(uri).build();
    }

antes era:

     @POST
     @Consumes(MediaType.APPLICATION_XML)
     public Response adiciona(String conteudo) {
        Carrinho carrinho = (Carrinho) new XStream().fromXML(conteudo);
        new CarrinhoDAO().adiciona(carrinho);
        URI uri = URI.create("/carrinhos/" + carrinho.getId());
        return Response.created(uri).build();
    }

e o CURL era:

curl -d "<br.com.alura.loja.modelo.Carrinho>  <produtos>    <br.com.alura.loja.modelo.Produto>      <preco>4000.0</preco>      <id>6237</id>      <nome>Videogame 4</nome>      <quantidade>1</quantidade>    </br.com.alura.loja.modelo.Produto>  </produtos>  <rua>Rua Vergueiro 3185, 8 andar</rua>  <cidade>São Paulo</cidade>  <id>1</id></br.com.alura.loja.modelo.Carrinho>" http://localhost:8080/carrinhos

ou 

curl -v -H "Content-Type: application/xml" -d "<br.com.alura.loja.modelo.Carrinho>  <produtos>    <br.com.alura.loja.modelo.Produto>      <preco>4000.0</preco>      <id>6237</id>      <nome>Videogame 4</nome>      <quantidade>1</quantidade>    </br.com.alura.loja.modelo.Produto>  </produtos>  <rua>Rua Vergueiro 3185, 8 andar</rua>  <cidade>São Paulo</cidade>  <id>1</id></br.com.alura.loja.modelo.Carrinho>" http://localhost:8080/carrinhos
1 resposta
solução!

bom, bastava fazer o get com

curl -v http://localhost:8020/carrinhos/1

retorna <?xml version="1.0" encoding="UTF-8" standalone="yes"?><carrinho><produtos><quantidade>1</quantidade></produtos><produtos><quantidade>2</quantidade></produtos><rua>Rua Vergueiro 3185, 8 andar</rua><cidade>São Paulo</cidade><id>1</id></carrinho>

E então pegar o XML resultante da resposta o fazer o post:

curl -v -H "Content-Type: application/xml" -d "<carrinho><produtos><preco>4000.0</preco><nome>Videogame 5</nome><quantidade>5</quantidade></produtos>,<rua>Rua X 3185, 10 andar</rua><cidade>São Paulo</cidade>  <id>1</id></carrinho>"  http://localhost:8020/carrinhos