Servlet

Olá pessoal,
eu estou com uma dúvida aqui que não estou conseguindo resolver
eu tenho o seguinte código que gera um arquivo xml mas ao invés de gerar um arquivo File f,
eu preciso inserir esse arquivo xml dentro de um servlet, ou seja, como resposta do método get,
será que alguém poderia me dar uma ajuda?

public class ExportEvaluationXML {
    ...
            File f = new File(fileName + "/" + projectName + "_" + sdf.format(now) + ".xml");
            FileWriter fw = new FileWriter(f);
            PrintWriter pw = new PrintWriter(fw);
            
            pw.println("<?xml version='1.0' encoding='UTF-8'?> \n");
            String projectInfo = "<ProjectInformation> \n \t<projectName>" + projectName + "</projectName>\n" 
                                + "\t<evaluator>" + assessorName + "</evaluator>\n" + "\t<organization>"
                                + assessorOrganization + "</organization>\n" + "</ProjectInformation>\n";
            pw.print(projectInfo);

            List<String> OMMname = new ArrayList<String>();
            List<String> OMMassessmentValue = new ArrayList<String>();

            DBConnection ommImport = new DBConnection();
     ....
}

Eu preciso criar um webservice, pois ao invés de retornar uma página HTML como resposta
para o cliente preciso retornar um XML no browser.

Será que alguém poderia me ajudar? :smiley:

[]'s.

[quote=ricardocomp]Olá pessoal,
eu estou com uma dúvida aqui que não estou conseguindo resolver
eu tenho o seguinte código que gera um arquivo xml mas ao invés de gerar um arquivo File f,
eu preciso inserir esse arquivo xml dentro de um servlet, ou seja, como resposta do método get,
será que alguém poderia me dar uma ajuda?

public class ExportEvaluationXML {
    ...
            File f = new File(fileName + "/" + projectName + "_" + sdf.format(now) + ".xml");
            FileWriter fw = new FileWriter(f);
            PrintWriter pw = new PrintWriter(fw);
            
            pw.println("<?xml version='1.0' encoding='UTF-8'?> \n");
            String projectInfo = "<ProjectInformation> \n \t<projectName>" + projectName + "</projectName>\n" 
                                + "\t<evaluator>" + assessorName + "</evaluator>\n" + "\t<organization>"
                                + assessorOrganization + "</organization>\n" + "</ProjectInformation>\n";
            pw.print(projectInfo);

            List<String> OMMname = new ArrayList<String>();
            List<String> OMMassessmentValue = new ArrayList<String>();

            DBConnection ommImport = new DBConnection();
     ....
}

Eu preciso criar um webservice, pois ao invés de retornar uma página HTML como resposta
para o cliente preciso retornar um XML no browser.

Será que alguém poderia me ajudar? :smiley:

[]'s.[/quote]
Já tentou adicionar o string no escopo response?

Jóia Carlos?

Eu já trabalhei com o jsf mas servlet puro é a primeira vez que eu tô trabalhando,
eu estou dando uma estudada aqui, vc teria algum exemplo de como eu escreveria essa
string no corpo do método response? Seria através de alguma saída padrão do servlet?
Isso existe saída padrão do servlet?

Obrigado pela dica Carlos.

[]'s.

Use o método doPost do seu servlet…

Obtenha o PrintWriter do HttpServletResponse…

Escreva seu XML nele aí sim ele sairá na página…

Veja como:

String seuXML = "qualquer coisa";

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            PrintWriter out = response.getWriter();
            out.println(seuXML);
}

Obs.: Vc me deve uma cerveja :lol:

Brincadeira, espero ter ajudado…

Não esquece de chamar um

response.setContentType("text/xml")

Antes de fazer o que os amigos acima falaram, vai funfar com certeza :slight_smile: