JasperReports e JBoss
-
Upload
khundalini -
Category
Documents
-
view
109 -
download
0
Transcript of JasperReports e JBoss
5/11/2018 JasperReports e JBoss - slidepdf.com
http://slidepdf.com/reader/full/jasperreports-e-jboss 1/2
Fazendo Deploy de Relatórios JasperReports no JBoss Server
Todos os arquivos .jar necessários devem ser colocados na pasta de bibliotecas do diretório do servidor JBoss(Exemplo: "C:\JBoss\Server\Default\Lib").
Feito isto, define-se a variável de ambiente do JasperReports apontando-a para a localização da sua bibliotecadentro do servidor do JBoss.
Exemplo:System.setProperty(
"jasper.reports.compile.class.path", "C:\JBoss\server\default\lib\jasperreports-0.5.3.jar");
Exportando um Relatório JasperReports Hospedado no JBoss para HTML
Recupere o fluxo de saída (output stream) do objeto de resposta e grave o relatório neste stream sem salvar primeiro em disco.
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, response.getWriter());
exporter.exportReport();
Extendendo a SoluçãoPara evitar que relatórios JasperReports com figuras não sejam corretamente visualizados, um pouco mais decódigo deve ser implementada para que as imagens criadas nos relatórios sejam devidamente mapeadasdentro dos arquivos temporários criados pelo JasperReports durante a renderização de relatórios.
Map imagesMap = new HashMap();request.getSession().setAttribute("IMAGES_MAP", imagesMap);exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?image=");
O código da página "image.jsp" sera o seguinte:
<%@page import="java.util.*" %><%@page import="java.io.*" %>
<%Map imagesMap = (Map)session.getAttribute("IMAGES_MAP");if (imagesMap != null){
String imageName = request.getParameter("image");if (imageName != null){
byte[] imageData = (byte[])imagesMap.get(imageName);response.setContentLength(imageData.length);ServletOutputStream outputStream = response.getOutputStream();outputStream.write(imageData, 0, imageData.length);outputStream.flush();outputStream.close();
}}%>
Considerações FinaisÉ interessante fazer uso de uma versão atualizada da biblioteca commons-digester-1.7.jar, ou maior, paraevitar problemas relacionados com os arquivos .jrxml dos relatórios no JBoss Server.