1
resposta

Não consigo renderizar o XML no browser

package br.com.alura.gerenciador.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;
import com.thoughtworks.xstream.XStream;

import br.com.alura.gerenciador.modelo.Banco;
import br.com.alura.gerenciador.modelo.Empresa;

@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 cabecalho = request.getHeader("Accept");

        System.out.println(cabecalho);

        if (cabecalho.contains("xml")) {
            XStream xStream = new XStream();
//            xStream.alias("empresa", Empresa.class);
            String xml = xStream.toXML(empresas);
            System.out.println(xml);
            response.setContentType("application/xml");
            response.getWriter().print(xml);
        }

        if (cabecalho.contains("json")) {
            String json = new Gson().toJson(empresas);

            response.setContentType("application/json");
            response.getWriter().print(json);
        } else {
            response.getWriter().print("{'message' : 'no content'}");
        }


    }
}

Assim está meu código, porem no console consigo renderizar o XML mas no browser ele apresenta um erro que não consigo identificar, segue a imagem do erro: https://prnt.sc/pumdh9

Saída no console: https://prnt.sc/pumdo0

1 resposta

Oi amigo,

Supeito que o seu request não esteja passando o cabeçalho xml