Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

Ao realizar a requisicao http://localhost:8080/bitcoins

Ao realizar a requisição da listagem dos bitcoins estou recebendo o seguinte erro no meu prompt de comando, dei uma pesquisada no google e uma das soluções que encontrei foi adicionar outra dependência, porém mesmo adicionando ainda estou sem sucesso.

2021-01-25 20:10:56,577 ERROR [org.jbo.res.res.i18n] (executor-thread-1) RESTEASY002010: Failed to execute: javax.ws.rs.NotSupportedException: RESTEASY003200: Could not find message body reader for type: class model.Bitcoin of content type: /

11 respostas

Yuri, boa noite. Você pode colocar o código da classe Bitcoin e da classe controller aqui?

package model;

import java.time.LocalDate;

public class Bitcoin {

private Long id;
private Double preco;
private String tipo;
private LocalDate data;

}


package resource;

import java.util.List;

import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType;

import org.eclipse.microprofile.rest.client.inject.RestClient;

import model.Bitcoin; import service.BitcoinService;

@Path("/bitcoins") public class BitcoinResource {

@Inject
@RestClient
BitcoinService bitcoinService;

@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Bitcoin> listar(Bitcoin bitcoin) {
    return bitcoinService.listar();
}

}

E o seu service?

package service;

import java.util.List;

import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType;

import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

import model.Bitcoin;

@Path("/bitcoins") @RegisterRestClient public interface BitcoinService {

@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Bitcoin> listar();

}

Você declarou as configurações no application.properties?

Sim..

service.BitcoinService/mp-rest/url=https://alura-bitcoin.herokuapp.com/bitcoins

No seu model tem os getters e setters?

Tem sim

Oi João, encontrei o problema, no meu Resource no método listar eu estava passando parâmetros, ao retirar funcionar. Porém estou com outro problema kkk..

Ao fazer a requisição recebo esse retorno no json: {"timestamp":"2021-01-26T19:12:28.054+00:00","status":401,"error":"Unauthorized","message":"","path":"/bitcoins/bitcoins"}

No meu application.properties é essa url: https://alura-bitcoin.herokuapp.com/bitcoins

Se eu acessar ela pelo browser dar certo, não me pede senha nem usuario, mas pela aplicação solicita;

solução!

Yuri, acabei de perceber aqui. No seu application.properties você definiu o service.BitcoinService/mp-rest/url=https://alura-bitcoin.herokuapp.com/bitcoins, mas na verdade não é aqui que você informa o /bitcoins, pois você já informou no service com a anotação @Path("bitcoins"). Alterando o seu application.properties para service.BitcoinService/mp-rest/url=https://alura-bitcoin.herokuapp.com/ deve funcionar =)

Deu certo! Obrigada!