Opa… sobre o caminho do arquivo, geralmente eu gosto de deixar o .jasper dentro da propria app mesmo, ai vc recupera via getResource…
Ai ele está usando um arquivo .jasper dentro do diretório web, da sua app.
Segue abaixo um código que ta gerando um .pdf, o qual esse aparece na pagina…
R.: Funcionaria…mas para abrir o viewer do jasper vc teria q. ter uma applet…ou esqueceria o vier e faria a saída para o browser
R.: esse é um caminho relativo…está apontando para essa pasta de acordo com a pasta onde vc esta…o (…) quer dizer q. está em uma pasta do mesmo nível da sua…
exemplo
/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
JasperFillManager.fillReportToFile( "c:/classic.jrprint", parametros, jrRS );
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile( "c:/MEUPDF.PDF" );
public Gerarelatório() throws Exception {
// Lista dos alunos
ArrayList listaAlunos = GerarDadosFicticios.getListaAlunos();
// Cria o data source para o relatório
relatórioAlunosDataSource ds = new relatórioAlunosDataSource(
listaAlunos);
// parâmetros do relatório
Map parâmetros = new HashMap();
parâmetros.put("pathSubRel",rel2);
JasperPrint impressao = JasperFillManager.fillReport(getClass()
.getResourceAsStream(rel1), parâmetros, ds);
//exibe o relatório
JasperViewer viewer = new JasperViewer(impressao, true);
viewer.show();
}
Esse viewer.show(); é utilizado para aplicações desktop não é? Para exibir no browser(Como o 1º exemplo deste topico) ou salvar no cliente, tenho que usar Servlet(browser) ou IO(cliente)…não ?
se vc usar um servlet a maior parte do código vai ficar igual…
o que vai mudar é na hora de exibir o relatório…
exemplo:
....
//carregando o arquivo.jasper...onde pathJasper é o caminho do arquivo dentro da appweb
JasperPrint impressao = JasperFillManager.fillReport(pathJasper+ "RelLancamento.jasper", parametros,ColaboradorDAO.getInstance().getConnection());
//exportando para PDF...o arquivo RelLancamento nao existe
JasperManager.printReportToPdfFile(impressao, path+ "/RelLancamento.pdf");
//redirecionando para o arquivo criado....
response.sendRedirect("RelLancamento.pdf");