Estou com o seguinte problema tenho essas duas classes para gerar para mim um relatorio em pdf.
public abstract class reporterAction {
@In
FacesMessages facesMessages;
//@In
// EntityManager manager;
@In(value = "org.jboss.seam.pdf.documentStore", create = true)
DocumentStore documentStore;
protected abstract String getReportPath();
protected abstract Map<String, Object> getParams();
@SuppressWarnings("deprecation")
public String print() {
String reportUrl = getReportPath();
try {
Map<String, Object> params = new HashMap<String, Object>();
// o entity manager deve ser informado para o Jasper
// params.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, manager);
// obter os parâmetros específicos do relatório
params.putAll(getParams());
// obter o caminho real (file system) para o relatório
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
String reportUrlReal = request.getRealPath(reportUrl);
// imprimir o relatório para um stream em PDF
JasperPrint impresao = JasperFillManager.fillReport(reportUrlReal, params);
ByteArrayOutputStream output = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(impresao, output);
// armazenar o relatório do DocumentStore do SEAM
String reportId = documentStore.newId();
DocumentData data = new DocumentData("Report #" + reportId , DocType.PDF, output.toByteArray());
documentStore.saveData(reportId, data);
// retornar para o caminho padrão do SEAM para exibição de relatórios
return "/seam-doc?docId=" + reportId;
} catch (Exception e) {
facesMessages.addFromResourceBundle("ERRO_RELATORIO:"+ e.getMessage(),
new Object[] {reportUrl, e.getMessage()});
return null;
}
}
}
@Name(“listaDocumentoApolo”)
public class ListaDocumentoApolo extends reporterAction {
@Override
protected String getReportPath() {
return "/WEB-INF/relatoriosJasper/Relatorio_Funcionarios.jasper";
}
//Passar os parametros
@Override
protected Map<String, Object> getParams() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("",null);
return params;
}
}
Mas ele esta retornando o seguinte erro.
14:23:58,322 ERROR [SeamPhaseListener] uncaught exception
javax.el.ELException: java.lang.reflect.InvocationTargetException