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

Dúvida no Ex. 6 da Aula 1 - Serviços Web REST e Addressability

Ao rodar o servidor e acessar a uri http://localhost:8080/carrinhos ,nada é retornado.

Servidor:

package br.com.alura.loja;

import java.io.IOException;
import java.net.URI;

import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;


public class Servidor {

    public static void main(String[] args) throws IOException {
        ResourceConfig config = new ResourceConfig().packages("br.com.alura.loja");
        URI uri = URI.create("http://localhost:8080/");
        HttpServer server = GrizzlyHttpServerFactory.createHttpServer(uri, config);
        System.out.println("Servidor rodando");
        System.in.read();
        server.stop();
    }

}
8 respostas

Oi Pedro, tudo bem? Apareceu algum erro no terminal quando você subiu o servidor? Algum log? Pode mostrar como está o seu @Resource do JAX-RS?

Olá Rodrigo, obrigado pelo retorno.

O servidor sobe sem problemas e sem erros.

Server log:

Jun 11, 2015 6:01:21 PM org.glassfish.jersey.server.ApplicationHandler initialize
INFO: Initiating Jersey application, version Jersey: 2.5 2013-12-18 14:27:29...
Jun 11, 2015 6:01:22 PM org.glassfish.grizzly.http.server.NetworkListener start
INFO: Started listener bound to [localhost:8080]
Jun 11, 2015 6:01:22 PM org.glassfish.grizzly.http.server.HttpServer start
INFO: [HttpServer] Started.
Servidor rodando

Rodrigo não utilizei o @Resources em nenhum local, mas o meu CarrinhoResource é o seguinte:

@Path("carrinhos")
public class CarrinhoResource {

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

}

Meu toXML:

public String toXML() {
        String xStream = new XStream().toXML(this);
        return xStream;
    }

Seu código não parece ter nenhum erro. Você recebe uma página em branco, ou um 404? Se você clicar com o botão direito na página e der um "View Page Source", o que aparece? (só pra conferir se o html está vazio mesmo, ou tem o xml e o navegador está escondendo). Se estiver vazio, tenta debugar ou colocar um system.out.println no seu controller pra ver se a requisição chega lá, e o que o DAO e toXML estão retornando.

Recebo em branco, o source também em branco, não está escondido. Tentei colocar um breakpoint no metodo public String busca(){ porém ele não é chamado...

seu controller está no pacote br.com.alura.loja mesmo?

Em um sub-pacote. Segue a estrtutura: http://i.imgur.com/IsFwNGk.png

solução!

OI Pedro! Veja que o seu CarrinhoResource está no pacote br.com.alura.recurso, e não no br.com.alura.loja.recurso (faltou o loja). Como no momento de crair o resource config nós passamos o pacote br.com.alura.loja como base, ele só pega os recursos a partir desse pacote:

new ResourceConfig().packages("br.com.alura.loja");

Basta mover o pacote que deve funcionar

Perfeito Rodrigo, obrigado, foi pura falta de atenção mesmo.