galera preciso de uma ajuda, [code] 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();[/code]
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
eu uso assim :
[code] 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();
}[/code]
[quote=evandro_araujo]eu uso assim :
[code] 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();
}[/code][/quote]
Cara adptei o codigo, olha se pode me ajudar com esse erro que está dando
[code] 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();
}[/code]
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
Abaixo todos as variaveis estão preenchidas ???
byte[] bytes = JasperRunManager.runReportToPdf(reportStream, map,
fonteDados);
[quote=evandro_araujo]Abaixo todos as variaveis estão preenchidas ???
[code]
byte[] bytes = JasperRunManager.runReportToPdf(reportStream, map,
fonteDados);
[/code][/quote]
menos a map, apenas instanciei da seguinte maneira, pois nao tenho parametros para passa,
Tenta passar um parametro no seu mapa…para testar, acho que pode ser isso o problema .
abc