Galera preciso chamar um relatório e não estou conseguindo. Eu consigo criar o relatório na máquina, mas não chamar para abrir no cliente. Segue o código da classe que gera o relatório na maquina do servidor.
public class Relatorios {
public static void exec_relatorio(String caminho, HashMap m) {
try {
JasperPrint print = JasperFillManager.fillReport(caminho, m, Conexao.conectar());
JasperExportManager.exportReportToPdfFile(print, "C:\\relatorio.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
JasperPrint jasperPrint = JasperFillManager.fillReport(caminho, m, Conexao.conectar();
jasperPrint.setName("teste.pdf");
// create a PDF file
byte bytes[] = JasperExportManager.exportReportToPdf(jasperPrint);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
[quote=rdmardegam][code]
JasperPrint jasperPrint = JasperFillManager.fillReport(caminho, m, Conexao.conectar();
jasperPrint.setName(“teste.pdf”);
// create a PDF file
byte bytes[] = JasperExportManager.exportReportToPdf(jasperPrint);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
[/code][/quote]
Esse response é oq?
Se você quer possibilitar que o arquivo seja enviado para donwload para o usuário, você deverá efetuar desta maneira.
Respose é o HttpServletResponse.
tentei usar o httpservletresponse da seguinte forma:
public class Relatorios {
public static void exec_relatorio(String caminho, HashMap m) {
try {
JasperPrint jasperPrint = JasperFillManager.fillReport(caminho, m, Conexao.conectar());
jasperPrint.setName("teste.pdf");
// create a PDF file
byte bytes[] = JasperExportManager.exportReportToPdf(jasperPrint);
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
mas recebo o seguinte erro:
java.lang.NullPointerException
at Utilidade.Relatorios.exec_relatorio(Relatorios.java:47)
at org.apache.jsp.relatorioFrequencia.relatorioCursoPolo_jsp._jspService(relatorioCursoPolo_jsp.java from :61)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:853)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:660)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:578)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:997)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:671)
at org.apache.jsp.index_jsp._jspService(index_jsp.java from :111)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Alguma idéia do que pode ser?
Ao efetuar a exportação para o diretorio, o relatorio abria normalmente??
Você esta indicando corretamente a localização do seu .jasper?
Em que potno exatamente está dando este erro?
Você esta utilizando oque? Servelet, Struts ??
[quote=rdmardegam]Ao efetuar a exportação para o diretorio, o relatorio abria normalmente??
Você esta indicando corretamente a localização do seu .jasper?
Em que potno exatamente está dando este erro?
Você esta utilizando oque? Servelet, Struts ??[/quote]
Sim, sim, na linha que instancia o Httpservletresponse, servlet. =[
entao, se você está utilizando servelet, provalmente ja possui o HttpservletResponse, n necessitando instalcia-lo novamente, simplesmente passe ele como parametro do seu metodo que efetua a exportação. Assim deve funcionar.
public static void exec_relatorio(String caminho, HashMap m, HttpServletResponse response)
Abraço.