[b]Galera tenho esse servlet para gerar relatorio em xls, mas quanto chamo ele dá um erro ao gerar o relatorio(chama o tratamento de excessão) dizendo que o relatorio é null.Porem não consigo ver aonde está o erro na geração do relatorio.
Se puderem me ajudar valeu!![/b]
public class ServletXls extends HttpServlet {
@In(create = true)
FuncionarioList funcionarioList;
String reportUrl="/WEB-INF/relatoriosJasper/Relatorio_Funcionarios.jasper";
protected void doPost(HttpServletRequest req, HttpServletResponse response)
throws ServletException, IOException {
Map parametros = new HashMap();
try {
// JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(funcionarioList.getResultList());
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
JasperReport reportUrlReal = (JasperReport)JRLoader.loadObject(request.getRealPath(reportUrl));
JasperPrint jasperPrint = JasperFillManager. fillReport(reportUrlReal, parametros);
JRXlsExporter exporter = new JRXlsExporter();
ByteArrayOutputStream output = new ByteArrayOutputStream();
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, output);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporter.exportReport();
byte[] bytes = output.toByteArray();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition","attachment; filename=file.xls");
response.setContentLength(bytes.length);
output.close();
OutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (Exception e) {
response.getWriter().println("Erro ao gerar o relatório: " + e.getMessage());
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
doPost(arg0, arg1);
}
}