Help!!!
Preciso de uma força para fazer um relatorio com graficos utilizando o jfreechart.
OBS: Utilizei o mesmo exemplo de um tutorial que tem no proprio site do Portal Java, mas quando fui testar no browser utilizando um servlet
deu o mesmo erro de quando eu teste com o iReport.
erro------->
java.lang.NoSuchMethodError: org.jfree.ui.RectangleInsets.<init>(DDDD)V
at org.jfree.chart.plot.Plot.<clinit>(Plot.java:183)
at org.jfree.chart.ChartFactory.createPieChart3D(ChartFactory.java:491)
at Graficos.pieChart3D(Graficos.java:26)
at Relatorio.doPost(Relatorio.java:56)
at Relatorio.doGet(Relatorio.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
at java.lang.Thread.run(Unknown Source)
Classe que gera o relatorio
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.awt.Toolkit;
import java.awt.image.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.imagemap.ToolTipTagFragmentGenerator;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;
public class RelatorioBilder {//extends HttpServlet
//---------------------------------------------------- Variaveis -------------------------------------------------\\
private static final long serialVersionUID = 1L;
private String[] label = {"A","B","C"};
private String[] valor = {"50","30","20"};
Graficos g = new Graficos();
//--------------------------------------------- Metodos da classe Relatorio --------------------------------------\\
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Caminho para o relatorio compilado
String path = "C:/Relatorio/ " + "RelatorioJuros.jasper";
//Mapeamento para os parametros
Map parametros = new HashMap();
parametros.put("image",g.pieChart3D(label,valor,0.60f,"Juros"));
//Stream para carregar o relatorio no Outputstream do response
ByteArrayOutputStream Stream = new ByteArrayOutputStream();
try{
//Abre a conexao
Connection();
//Carrega o relatorio com os parametros
JasperPrint print = JasperFillManager.fillReport(path,parametros);
//Exporta o relatorio para o Stream
JasperExportManager.exportReportToPdfStream(print, Stream);
//Seta o tipo de aplicação
response.setContentType("application/pdf");
response.setContentLength(Stream.size());
//Escreve o relatorio no response
OutputStream out = response.getOutputStream();
Stream.writeTo(out);
out.flush();
out.close();
} catch (Exception e){
e.printStackTrace();
response.getWriter().println("Erro: " + e);
response.getWriter().println(msg);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
doPost(request,response);
}
}
Classe que gera o grafico
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class Graficos {
//------------------------------------------------- Variaveis ----------------------------------------------------\\
//------------------------------------------- Metodos da classe Graficos------------------------------------------\\
public Graficos(){}
public JFreeChart pieChart3D(String[] nome,String[] valor,float transparencia,String Titulo){
//Cria um dataset para o grafico
DefaultPieDataset data = new DefaultPieDataset();
//int nomesize = nome.length;
int valorsize = valor.length;
//Adiciona os valores ao grafico
for(int i=0; i<valorsize; i++){
data. setValue ( "" +nome[i], new Double (valor[i]));
}
//Cria o grafico de Pizza 3D
JFreeChart chart = ChartFactory.createPieChart3D(Titulo,data,true,true,false);
return chart;
}
}
Alguem pode me ajudar --------->
:?: :arrow: :idea: