iReport passagem de parametros

1 resposta
erasmo_tec

ai galera, estou fazendo uns testes em um relatorio no iReport passando dois parametros de datas e na hora que vou chamar o JasperRunManager da o seguinte erro:

java.lang.NullPointerException
	java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2266)
	java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279)
	java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
	java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
	java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
	net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:191)
	net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:361)
	net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:163)
	br.com.finasa.servlet.ExecutaRelatorioServlet.processRequest(ExecutaRelatorioServlet.java:63)
	br.com.finasa.servlet.ExecutaRelatorioServlet.doGet(ExecutaRelatorioServlet.java:87)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

o metodo que estou utilizando para gerar o relatorio é esse, e acompanhando o debug o erro ocorre na linha 22

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException, ClassNotFoundException, SQLException, JRException {
        response.setContentType("text/html;charset=UTF-8");


        ServletOutputStream servletOutputstream = response.getOutputStream();
        String caminho = "/relatorios";
        String relatorio = caminho + "AcompanhamentoGeral.jasper";
        InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream(relatorio);
        

        try {
            dataBaseUtil.pegaconexao();
            //HashMap<String,String> map = new HashMap<String,String>();
            Map map = new HashMap();
            
            //map.put("dataInicial", context.getRealPath(caminho) + File.separator);
            map.put("dataInicial", "28/07/2009");
            map.put("dataFinal", "30/07/2009");
            //para gerar o relatorio em pdf
            //JasperRunManager.runReportToPdfStream(reportStream, servletOutputstream, map, dataBaseUtil.pegaconexao());
            JasperRunManager.runReportToPdfStream(reportStream, servletOutputstream, map, dataBaseUtil.pegaconexao());
            //envia o relatorio em formato pdf para o browser
            response.setContentType("application/pdf");
            servletOutputstream.flush();
            servletOutputstream.close();
            if (dataBaseUtil.pegaconexao() != null) {
                dataBaseUtil.pegaconexao().close();
            }
        
        } finally {
        
        }
    }

alguem tem alguma ideia…

1 Resposta

cristian_clever

Boa tarde,

Em primeiro lugar uma pergunta. Não deveria haver um separador de arquivos na linha 8 do seu codigo?
Creio que deveria ser mais ou menos isso.

#         String relatorio = caminho + "/AcompanhamentoGeral.jasper";

Pode ser isso… ou seja ele não consegue ler o arquivo jasper, logo reportStream estara nulo.

Criado 24 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 1
Participantes 2