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

Problemas ao deletar Produto do Carrinho

Estou executando o codigo de delete pelo terminal, me devolve 200 ok mas não deleta o produto. Achei estranho no terminal aparece a seguinte mensagem : Hostname was NOT found in DNS cache. Alguem teve o mesmo problema ? Abaixo esta o que aparece apos deletar o produto do carrinho no terminal.

  • Hostname was NOT found in DNS cache
  • Trying 127.0.0.1...
  • Connected to localhost (127.0.0.1) port 8080 (#0)

    DELETE /carrinhos/1/produtos/6237 HTTP/1.1 User-Agent: curl/7.35.0 Host: localhost:8080 Accept: /

    < HTTP/1.1 200 OK < Date: Sun, 19 Feb 2017 19:51:44 GMT < Content-Length: 0 <

  • Connection #0 to host localhost left intact
2 respostas

Oi Jefferson, vc pode testar o mesmo pelo postman? ele é uma extensão do chrome para consumir serviços http. Só para a gente analisar se existe um problema ou é apenas um uso incorreto do terminal.

solução!

Bom analisando agora o meu código, eu criei um teste e achei o erro e era no código. Na anotação @Path eu passei o nome da variável errado ai ele não deletava o produto mas dava como se tivesse deletado resposta 200.

Esse é o código errado:

@Path("{id}/produtos/{produtosId}") @DELETE public Response removeProdutos(@PathParam("id") long id, @PathParam("produtoId") long produtoId) { Carrinho carrinho = new CarrinhoDAO().busca(id); carrinho.remove(produtoId); return Response.ok().build(); }

E o correto é esse:

@Path("{id}/produtos/{produtoId}") @DELETE public Response removeProdutos(@PathParam("id") long id, @PathParam("produtoId") long produtoId) { Carrinho carrinho = new CarrinhoDAO().busca(id); carrinho.remove(produtoId); return Response.ok().build(); }

Um pequeno erro meu, mas muito obrigado por sua ajuda @Alberto Souza .