Olá pessoal, a algum tempo já venho postando algumas dúvidas em relação a Geração de Relatórios com o JasperReport, infelizmente não tive sucesso quanto a resolução do problema.
Por isso, resolvi postar aqui novamente, pois já quebrei bastante a cabeça e não encontro uma possível solução para esse problema, então gostaria de compartilhar com vocês, pois alguém já pode ter passado por isso também e poderá me ajudar.
É o seguinte pessoal, eu tenho uma classe (Main.java):
public class Main {
public static void main(String[] args) {
try {
String path = "E:/WorkSpace/Java/ProjetoCRUDClientes/build/web/relatorios/relatorioclientes.jasper";
Facade facade = Facade.getInstance();
JasperPrint jp = facade.gerarRelatorioClientePDF(path);
JasperViewer view = new JasperViewer(jp);
view.setVisible(true);
JasperExportManager.exportReportToPdfFile(jp, "clientes.pdf");
} catch (JRException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
[color=green] Quando eu rodo essa classe, é gerado o relatório tudo certinho. [/color]
Eu fiz um servlet também (GerarRelatorioPDF):
public class GerarRelatorioPDF extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
try {
Facade facade = Facade.getInstance();
String caminhoDiretorio = getServletContext().getRealPath("relatorios/");
String nomeArquivo = "\relatorioclientes.jasper";
String jasper = caminhoDiretorio.concat(nomeArquivo);
jasper = jasper.replace('\' , '/');
//Nessa linha é impresso: "E:/WorkSpace/Java/ProjetoCRUDClientes/build/web/relatorios/relatorioclientes.jasper"
out.println(jasper);
JasperPrint printer = facade.gerarRelatorioClientePDF(jasper);
JasperViewer view = new JasperViewer(printer);
view.setTitle("teste");
view.setVisible(true);
JasperExportManager.exportReportToPdfFile(printer, "clientes.pdf");
}catch (Exception e) {
out.println("Houve erro!");
}
}
}
[color=red]Chamando o mesmo método, passando a mesma String como parâmetro, não consigo gerar o relatório, segue abaixo a excessão gerada:[/color]
java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.GroovyCategorySupport.getCategoryNameUsage(Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicInteger;
org.codehaus.groovy.runtime.callsite.AbstractCallSite.<init>(AbstractCallSite.java:46)
org.codehaus.groovy.runtime.callsite.CallSiteArray.<init>(CallSiteArray.java:35)
null_1298553812759_401890.$createCallSiteArray(calculator_null_1298553812759_401890)
null_1298553812759_401890.$getCallSiteArray(calculator_null_1298553812759_401890)
null_1298553812759_401890.<init>(calculator_null_1298553812759_401890)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:530)
java.lang.Class.newInstance0(Class.java:372)
java.lang.Class.newInstance(Class.java:325)
net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:98)
net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:320)
net.sf.jasperreports.engine.JasperCompileManager.loadEvaluator(JasperCompileManager.java:240)
net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:420)
net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:432)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:77)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:87)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:52)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
br.crud.model.logic.RelatorioClienteService.gerarRelatorioPDF(RelatorioClienteService.java:33)
br.crud.model.fachada.Facade.gerarRelatorioClientePDF(Facade.java:34)
br.crud.controller.servlets.GerarRelatorioPDF.doGet(GerarRelatorioPDF.java:30)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
Alguém pode me ajudar?