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

Erro ao tentar usar o serviço REST

Fala professor tudo beleza? Em primeiro lugar muito boa sua video aula, apreendi muita coisa de utilidade, e também apreendi a como consumir um web service, fiz um teste na viaCep para retornar os cep usando Json, e veio com sucesso,

String cep = "86801010";

        Client client = ClientBuilder.newClient();
        WebTarget target = client.target("http://www.viacep.com.br/ws");

        String resposta = target.path(cep + "/json").request().get(String.class);

        Enudereco endereco = new Gson().fromJson(resposta, Endereco.class);

E isso graças a suas videos aula.

Agora eu tenho uma aplicação mesmo para teste, com JSF e usando o servidor tomcat 7, usando o maven, e coloquei as dependecia que você usou na video aula no maven. porem quando eu faço o meu servidor do seguinte maneira, a pagina vem em 404 nao encontrado.

@Path("produtos/resource")
public class ProdutoResource {

    @Inject
    private ProdutoDao produtoDao;

    @Path("{id}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public String buscarProduto(@PathParam("id") Long id) {

        Produto produto = produtoDao.buscarProduto(id);
        String conteudo = new Gson().toJson(produto, Produto.class);

        return conteudo;
    }
}

Ai quando tento acessar.

http://localhost:8080/food/produtos/resource/1

me retorna o erro 404, é falta de configuração? Pois não configurei nada no projeto...

4 respostas

Alguem??

solução!

Opa, parece que é falta de configuração sim. Se você está no tomcat, provavelmente vai precisar de uma configuração a mais. Já deu uma olhada na documentação do jersey => https://jersey.github.io/documentation/latest/deployment.html#deployment.servlet.3 ?

Aí você vai encontrar o passo necessário.

Opa, Alberto fiz as seguintes operações aqui.

peguei e coloquei essa parte no meu pom.xml

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>

Como está na documentação e logo depois criei a minha classe.

import javax.ws.rs.ApplicationPath;

import org.glassfish.jersey.server.ResourceConfig;

import com.sun.jersey.api.core.PackagesResourceConfig;

@ApplicationPath("rest")
public class ApplicationResource extends ResourceConfig{
    public ApplicationResource(){

    }
}

Só que quando eu faço minha classe, alias quando eu extendo ela da classe ResourceConfig me aparece o seguinte erro com o nome da minha Classe sublinhado de vermelho.

The hierarchy of the type ApplicationResource is inconsistent

E quando crio o meu construtor, tento invocar o meu método, packages, não é encontrado, o método

Oque sera que deve estar faltando?

Esse erro indica que a classe que você ta herdando não está no classpath... Talvez seja faltando adicionar o jersey no pom ou a versão está errada...