Jasper Report, exibição de PDF em browser

1 resposta
R

Olá,

Minha dúvida é a seguinte:

Tenho uma aplicação que gera relatorios pdf para exibir no browser…
Quando testo localmente em meu servidor funciona porém quando coloquei no servidor da locaweb(linux) ele gera o relatório mas não exibe e abre a caixa de dialogo de slvamento…

Segue o código para que possam me ajudar:

<%@ page errorPage=error.jsp %>

<%@ page import=datasource.<em>" %>

<%@ page import="dori.jasper.engine.</em>” %>

<%@ page import=dori.jasper.engine.export.<em>" %>

<%@ page import="dori.jasper.engine.util.</em>” %>

<%@ page import=java.util.<em>" %>

<%@ page import="<a href="http://java.io">java.io</a>.</em>” %>

<%@ page import=java.sql.<em>" %>

<%@ page import="com.ag5tecnologia.util.db.</em>” %>

<%@ page import=com.ag5tecnologia.util.* %>

<%@ include file="…/conf_jasper_report.inc.jsp"%>

<%

String empresaId = request.getParameter(“empresaId”);
String dataMes = request.getParameter(“dataMes”);

DriverManager.registerDriver(driver);

Connection conn = DriverManager.getConnection(dsn,login,senha);

ResultSet rs = null;
String linhaParametro1 = "";
String linhaParametro2 = "";
String linhaParametro3 = "";

//File reportFile = new File("/home/restricted/home/itaparicatour1/public_html/iztour/reports/rel_lista_de_aniversariantes/rel_lista_de_aniversariantes.jasper");
//File reportFile = new File("/home/itaparicatour1/public_html/iztour/reports/rel_lista_de_aniversariantes/rel_lista_de_aniversariantes.jasper");
File reportFile = new File(application.getRealPath("/iztour/reports/rel_lista_de_aniversariantes/rel_lista_de_aniversariantes.jasper"));

Map parameters = new HashMap();
parameters.put("BaseDir", reportFile.getParentFile());

String sql = "";

sql += " SELECT ";
sql += "   pagador_recebedor.nome, ";
.....
.....
sql += "   ORDER BY  mes, dia";

parameters.put("conexao", conn);

parameters.put("linhaParametro1", linhaParametro1);
parameters.put("linhaParametro2", linhaParametro2);
parameters.put("linhaParametro3", linhaParametro3);

//ResultSet rs = null;
rs=null;
try {
  Statement st = conn.createStatement();
  rs = st.executeQuery(sql);

  byte[] bytes =
  JasperRunManager.runReportToPdf(
		reportFile.getPath(),
        parameters,
		new JRResultSetDataSource(rs)
		);

  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) {
  response.getWriter().print("&lt;!--");
  e.printStackTrace(response.getWriter());
  response.getWriter().print("--&gt;");
}

%>

1 Resposta

D

É recomendável pela especificação que você não dependa do sistema de arquivos… Talvez o sistema da locaweb nao seja igual aou seu (talvez nao, provavelmente nao eh igual!!!)
Faca o seguinte:
coloque seu .jasper debaixo do diretorio da aplicacao e utilize o método do ServletContext getResourceAsStream para obter o input stream para o arquivo

Normalmente eu faço isso e dá certo…

Abraços

Criado 28 de agosto de 2004
Ultima resposta 29 de ago. de 2004
Respostas 1
Participantes 2