Report Jasper funciona no netbeans, mas não no tomcat

4 respostas
C

Boa tarde,

Estou com um problema muito estranho. Estou gerando um report Jasper por um Servlet e no final ele deveria abrir o JarperView e imprime no Internet Explore que o relatorio foi gerado corretamente, mas não abre o JasperView, mas aparece que a mensagem de gerado corretamente. Isso só ocorre rodando pelo TomCat, pois quando roda do NetBeans funciona corretamente.

Já adicionei as bibliotecas abaixo no lib do projeto no tomcat, falta alguma?

jasperreports-3.0.1.jar
jcommon-1.0.16.jar
commons-beanutils-1.8.0.jar
commons-collections-3.2.1.jar
commons-digester-2.0.jar
commons-loggins-1.1.1.jar
itext.jar
jfreechart-1.0.13.jar
commons-logging-api.1.1.1.jar
xalan.jar

Versao do tomcat 6.0 e netbeans 6.5.1

Segue o Servlet:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType(text/html;charset=UTF-8);

PrintWriter out = response.getWriter();

String pathJasper = getServletContext().getRealPath("");

Map parametros = new HashMap();

String DataInicial =  request.getParameter(txtDiaInicial) + / + request.getParameter(txtMesInicial) + / + request.getParameter(txtAnoInicial);

String DataFinal =  request.getParameter(txtDiaFinal) + / + request.getParameter(txtMesFinal) + / + request.getParameter(txtAnoFinal);

parametros.put(Inicio, DataInicial);

parametros.put(Fim, DataFinal);

parametros.put(Tipo, request.getParameter(cboTipo));
AcessoBD objAcessoBD = new AcessoBD();
    
    String rel = pathJasper + "\\Relatorio_OS1.jasper";

    try{
        JasperPrint impressao = JasperFillManager.fillReport(rel, parametros, objAcessoBD.AbreConexaoBD());
        try {

            JasperViewer.viewReport(impressao);
            try{
                out.print("Relatorio gerado com sucesso!");
            }
            catch (Exception es){
                out.print(es);
            }
        }
        catch (Exception e) {
            out.print(e);
        }   
    }
    catch (JRException ex) {
        out.print(ex);
    }
}

Desde já agradeço a ajuda.

4 Respostas

Mero_Aprendiz

Olá.
Bem, a não ser que você conheca muito de fisica quântica, rs!, você não vai conseguir executar esse JasperView no browser do cliente, porque estão em lugares fisicos diferentes.
Até onde sei, o Jasper View já e executado na maquina onde a aplicação está rodando.
O mais aconselhavel é você mandar o relatório para o cliente, por download ou escrevendo o array de bytes no cliente.
Dá uma buscada no Google que voê acha.

[]'s
JL

furutani

Como você usa o JasperViewer que é um aplicativo desktop vai funcionar perfeito no seu ambiente de desevolvimento (netbeans). A minha sugestão é exportar pra PDF/Excel/RTF e enviar pro usuário fazer download. Pode também criar um applet pra exibir com JasperViewer.

D

Se for trabalhar com applet como foi mencionado no post acima, fique atento as permissões de segurança para executar o JasperViewer. Você terá que “sair” fora do sandbox, e por isso terá um pouco mais de trabalho assinando digitalmente seu applet para que ele conseguia gerar o relatório. Como mencionado, é muito mais fácil e lógico mostrar isso no browser do cliente em pdf, estará trabalhando e resolvendo o problema dentro do ambiente web, sem maiores complicações.

C

Muito Obrigado a Todos!!! Agora funciona que é uma beleza!!! Logico que usando o JasperExportManager.exportReportToPdf.

Abs,

Criado 1 de julho de 2009
Ultima resposta 1 de jul. de 2009
Respostas 4
Participantes 4