Amigos,
Estou trabalhando um projeto com Struts e preciso passar um método do Action para a camada model: é um método que compõe um relatório em jasperreport. Sempre que tento separar o método da classe Action, dá um classNoDefFoundError nas classes/interfaces importadas do jasperreports, como a net.sf.jasperreports.engine.JRDataSource.
Alguém poderia-me ajudar a passar o seguinte método para uma classe separada do Action? sem dar classNoDefFoundError toda hora?
/*
* !!implementar na camada model!! aqui só faz a chamada
public ActionForward relatorios(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionMessages errors = new ActionMessages();
ActionForward forward = null;
ServletContext contexto = this.getServlet().getServletContext();
DataSource ds = EJBUtil.getDataSource("java:/CadastrosMySqlDS");
Connection conn = ds.getConnection();
Statement stm = conn.createStatement();
String sql = "SELECT funcionario.nome as nomeF," +
" count(funcionario.id) total," +
" funcionario.endereco, funcionario.salario," +
" funcionario.cpf, funcionario.email," +
" funcionario.categoria, categoria.id," +
" categoria.nome as nomeC" +
" FROM funcionario, categoria" +
" WHERE funcionario.categoria = categoria.id" +
" GROUP BY funcionario.id";
ResultSet rs = stm.executeQuery(sql);
try
{
String caminho = contexto.getRealPath("/");
File reportFile = new File(contexto.getRealPath("/relatorios/funcionarios.jasper"));
if (!reportFile.exists())
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.relatorio.jasper"));
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
Map parameters = new HashMap();
parameters.put("ReportTitle", "Listagem");
parameters.put("BaseDir", reportFile.getParentFile());
JasperPrint jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
new JRResultSetDataSource(rs)
);
JasperExportManager.exportReportToPdfFile(jasperPrint, caminho + "funcionarios.pdf");
forward = mapping.findForward("reportPdf");
}
catch (JRException jre){
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.gerar.relatorio"));
getServlet().log("Erro ao gerar relatório", jre);
}
catch(Exception e){
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.relatorio"));
getServlet().log("Erro ao gerar relatório", e);
}
if (!errors.isEmpty()){
saveErrors(request, errors);
forward = mapping.findForward("failed");
}
return forward;
}
*/
Agradeço desde já,
Sidarta O.S.S.