Navegador abri o relatorio

5 respostas
lucasbf1992
galera preciso de uma ajuda,
public void pdf() throws JRException, IOException {
        
        List<Setor> listOfSetor = (List<Setor>) dao.getList();
        JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(listOfSetor);
        String reportPath= FacesContext.getCurrentInstance().getExternalContext().getRealPath("/relatorios/report.jasper");
         
        JasperPrint jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(),beanCollectionDataSource);
         HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();  
        httpServletResponse.addHeader("Content-disposition", "attachment; filename=report.pdf");  
        ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();  
        JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);  
        FacesContext.getCurrentInstance().responseComplete();

esse seguinte codigo gera o pdf e disponibiliza para download, alguem poderia me explicar como fazer para abrir no proprio navegador ?

desde ja abraço

5 Respostas

E

eu uso assim :

public static void startrelatorio(InputStream reportStream, HttpServletResponse response, Map<String, Object> map, JRBeanCollectionDataSource fonteDados) throws JRException, IOException {
        byte[] bytes = JasperRunManager.runReportToPdf(reportStream, map,
                fonteDados);

        response.setContentLength(bytes.length);
        ServletOutputStream servletStream = response.getOutputStream();
        servletStream.write(bytes, 0, bytes.length);
        servletStream.flush();
        servletStream.close();
        FacesContext.getCurrentInstance().responseComplete();

    }
lucasbf1992
evandro_araujo:
eu uso assim :
public static void startrelatorio(InputStream reportStream, HttpServletResponse response, Map<String, Object> map, JRBeanCollectionDataSource fonteDados) throws JRException, IOException {
        byte[] bytes = JasperRunManager.runReportToPdf(reportStream, map,
                fonteDados);

        response.setContentLength(bytes.length);
        ServletOutputStream servletStream = response.getOutputStream();
        servletStream.write(bytes, 0, bytes.length);
        servletStream.flush();
        servletStream.close();
        FacesContext.getCurrentInstance().responseComplete();

    }

Cara adptei o codigo, olha se pode me ajudar com esse erro que está dando

public void pdf2() throws JRException, IOException {

        List<Setor> listOfSetor = (List<Setor>) dao.getList();
        JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(listOfSetor);
        Map<String, Object> map = new HashMap();
        InputStream reportStream = getClass().getResourceAsStream("./relatorios/todosSetores.jasper");
        

        HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();

        byte[] bytes = JasperRunManager.runReportToPdf(reportStream, map,
                fonteDados);

        response.setContentLength(bytes.length);
        ServletOutputStream servletStream = response.getOutputStream();
        servletStream.write(bytes, 0, bytes.length);
        servletStream.flush();
        servletStream.close();
        FacesContext.getCurrentInstance().responseComplete();
    }

Caused by: java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2283)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2296)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2767)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:798)
at java.io.ObjectInputStream.(ObjectInputStream.java:298)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.(ContextClassLoaderObjectInputStream.java:58)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:244)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:229)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:632)
at net.sf.jasperreports.engine.JasperRunManager.runToPdf(JasperRunManager.java:466)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:875)
at br.com.sistema_servicos.bean.SetorBean.pdf2(SetorBean.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:528)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257)
at com.sun.el.parser.AstValue.invoke(AstValue.java:248)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
... 61 more

E

Abaixo todos as variaveis estão preenchidas ???

byte[] bytes = JasperRunManager.runReportToPdf(reportStream, map,  
               fonteDados);
lucasbf1992
evandro_araujo:
Abaixo todos as variaveis estão preenchidas ???
byte[] bytes = JasperRunManager.runReportToPdf(reportStream, map,  
               fonteDados);

menos a map, apenas instanciei da seguinte maneira, pois nao tenho parametros para passa,

Map<String, Object> map = new HashMap();
E

Tenta passar um parametro no seu mapa…para testar, acho que pode ser isso o problema .

abc

Criado 20 de janeiro de 2014
Ultima resposta 31 de jan. de 2014
Respostas 5
Participantes 2