Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 2 da Aula 11 - Atualizando recursos e o PUT

olá boa noite,

Ao acessar a uri: http://localhost:8080/carrinhos/1/produtos/3467

não tenho nenhum retorno.

Favor, me ajude com essa implementação.

Como ficaria o método?

obrigado,

5 respostas

Oi Fagner, tudo bem?

O que você já implementou? Pode compartilhar conosco?

Abraços!

olá Leandro,

tenho esse:

@Path("carrinhos")
public class CarrinhoResource {

    @Path("{id}")
    @GET
    @Produces(MediaType.APPLICATION_XML)        
    Carrinho carrinho = new CarrinhoDAO().busca(id);
         return carrinho;
    }
}

      //metodo
    public Carrinho busca(Long id) {
        return mapBanco.get(id);
    }

lembrando q estou consultando um map em memoria...

public class CarrinhoDAO {

    private static Map<Long, Carrinho> mapBanco = new HashMap<Long, Carrinho>();
    private static AtomicLong contador = new AtomicLong(1);

    static {
        Produto videogame = new Produto(6237, "Videogame 4", 4000, 1);
        Produto   esporte = new Produto(3467, "Jogo de esporte", 60, 2);
        Carrinho carrinho = new Carrinho()
                                .adiciona(videogame)
                                .adiciona(esporte)
                                .para("Rua Vergueiro 3185, 8 andar", "São Paulo")
                                .setId(1l);
        mapBanco.put(1l, carrinho);
    }

    public void adiciona(Carrinho carrinho) {
        long id = contador.incrementAndGet();
        carrinho.setId(id);
        mapBanco.put(id, carrinho);
    }

    public Carrinho busca(Long id) {
        return mapBanco.get(id);
    }

Oi Fagner, tudo bem?

Uma ideia seria chamar o método .toXML() no carrinho e trocar o retorno pra String:

@GET
@Produces(MediaType.APPLICATION_XML)
public String busca() { 
    return new CarrinhoDAO().busca(1l).toXML();
}

Ou deixa o JAX-B se virar anotando o Carrinho com @XmlRootElement e @XmlAccessorType(FIELD) (pra não precisar criar getters/setters)

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Carrinho {
@GET
@Produces(MediaType.APPLICATION_XML)
public Carrinho busca() { 
    return new CarrinhoDAO().busca(1l);
}

Abraços!

Oi Fagner, alguma novidade?

solução!

Oi Fagner, vou fechar esse tópico. Mas caso ainda tenha dúvidas pode abrir outro :)

Abraços!