3
respostas

HttpResponseException ao executar o ClienteWebService

Olá,

estou tomando a devida exception ao executar o client:

Exception in thread "main" org.apache.http.client.HttpResponseException: 
    at org.apache.http.impl.client.AbstractResponseHandler.handleResponse(AbstractResponseHandler.java:70)
    at org.apache.http.client.fluent.Response.handleResponse(Response.java:90)
    at org.apache.http.client.fluent.Response.returnContent(Response.java:97)
    at ClienteWebService.main(ClienteWebService.java:14)

criei a requisição conforme a aula do Prof. Nico, não sei aonde está o erro, segue o código do servidor e do cliente:

Cliente:

public class ClienteWebService {

    public static void main(String[] args) throws ClientProtocolException, IOException {

        String conteudo = Request
                .Post("http://localhost:80/gerenciador/empresas")
                .addHeader("Accept", "application/xml")
                .execute()
                .returnContent()
                .asString();

            System.out.println(conteudo);


    }

}

Servidor:

@WebServlet("/Empresas")
public class EmpresasService extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        List<Empresa> empresas = new Banco().getEmpresas();

        String valor = request.getHeader("accept");

        if(valor.endsWith("xml")) {

            XStream xstream = new XStream();
            xstream.alias("empresa", Empresa.class);
            String xml = xstream.toXML(empresas); 

            response.setContentType("application/xml");
            response.getWriter().print(xml);

        } else if(valor.endsWith("json")) {
            Gson gson = new Gson();
            String json = gson.toJson(empresas); 

            response.setContentType("application/json");
            response.getWriter().print(json);

        }
    }
}

Alguém poderia esclarecer o porque da Exception?

Grato desde já, abraços.

3 respostas

Boa noite, Michel! Como vai?

A url utilizada na aula é http://localhost:8080/gerenciador/empresas enquanto a que vc utilizou foi http://localhost:80/gerenciador/empresas. Veja que vc trocou a porta 8080 e utilizou a porta 80! Faça essa correção e veja se as coisas funcionam como vc esperava!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Boa noite Gabriel, tudo certo! E contigo?

Pois bem, o problema não é a porta, pois eu alterei de 8080 para 80 no arquivo web.xml do servidor. O servidor sobe, consigo realizar as requisições via browser sem problemas.

Acredito que seja algo relacionado ao cliente, porque o estouro indica a linha 14 mas não deixa claro o que deve está causando. A exception acontece exatamente quando eu executo o cliente para requisitar o xml.

Abraços!

Opa, Michel! Tudo ótimo!

Seguinte, vc poderia compartilhar o seu projeto no github e mandar o link aqui? Assim eu poderei dar uma olhada melhor no que está acontecendo para tentar te ajudar!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software