Erro ao usar CeWolf

5 respostas
natasha

Olá a todos, estou com um probleminha aqui ao usar o CEWOLF, coloquei no lib todos os Jar, sendo que o jfreechart-*-demo.jar eu peguei do jfreeechart já que não encontrei no cewolf

Meus Jar no lib:
jfreechart--demo.jar
jfreechart-
.jar
jcommon-*.jar
commons-logging.jar
cewolf.jar
batik-xml.jar
batik-util.jar
batik-svggen.jar
batik-dom.jar
batik-awt-util.jar

No web.xml

<web-app xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>
  		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter>
  
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

<taglib>
<taglib-uri>/WEB-INF/cewolf.tld</taglib-uri>
<taglib-location>/WEB-INF/cewolf.tld</taglib-location>
</taglib>

<servlet>
<servlet-name>CewolfServlet</servlet-name>
<servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>
<init-param>
<param-name>storage</param-name>
<param-value>de.laures.cewolf.storage.TransientSessionStorage</param-value>
</init-param>
<init-param>
<param-name>overliburl</param-name>
<param-value>overlib.js</param-value>
</init-param>
<!?Torna o debug ativo -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CewolfServlet</servlet-name>
<url-pattern>/cewolf/*</url-pattern>
</servlet-mapping>
 
</web-app>

Os erros:

java.lang.ClassCastException: de.laures.cewolf.taglib.tags.ChartImgURLTagEI cannot be cast to javax.servlet.jsp.tagext.TagExtraInfo

java.lang.ClassCastException: de.laures.cewolf.taglib.tags.ChartImgURLTagEI cannot be cast to javax.servlet.jsp.tagext.TagExtraInfo

Já mudei o exemplo mas a unica coisa que permanece são esses dois erros, o que eu faço?
Obrigada

5 Respostas

natasha

Alguém tem alguma outra idéia para gerar gráfico web dinâmico (vindo do banco)?

furutani

Já deu uma olhada no jfreechart - http://www.jfree.org/jfreechart/
Ele é bem completo

natasha

Olá furutani, eu li sua apostila, parabéns. :)
bem... eu até começei a fazer em jfreechart, o problema é que só encontrei exemplos de aplicações desktop e li que o melhor seria o cewolf para aplicações web e que o jfreechart não seria bom de se usar, o exemplo que usei para jfreechart, funcionou mas só como desktop.

Por acaso alguém tem algum exemplo de Jfreechart para web?
Obrigada

o que eu tenho é só para desktop:
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;

public class ChartFrame extends JFrame
{
private static final long serialVersionUID = 1L;
private DefaultPieDataset dataset;
private JFreeChart jfc;
public ChartFrame()

{
dataset = new DefaultPieDataset();
}

public void setValue(String title, Double numDouble)
{
dataset.setValue(title, numDouble);
}

public void setChar(String title)
{

jfc = ChartFactory.createPieChart(title, dataset, true, true, false);
PiePlot pp = (PiePlot) jfc.getPlot();
pp.setSectionOutlinesVisible(false);
pp.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
pp.setNoDataMessage("Nessun Dato Inserito");
pp.setCircular(false);
pp.setLabelGap(0.02);
}

private JPanel createPanel()
{
return new ChartPanel(jfc);
}

public void Show()
{
setContentPane(createPanel());
setVisible(true);
}

public static void main(String[] args)
{
ChartFrame j = new ChartFrame();
j.setTitle("Example Chart...");
j.setSize(640, 430);
j.setValue("UNO", new Double(20.0));
j.setValue("DUE", new Double(10.0));
j.setValue("TRE", new Double(20.0));
j.setValue("QUATTRO", new Double(30.0));
j.setValue("CINQUE", new Double(20.0));
j.setChar("Example Chart...");
j.Show();
}

}
natasha

Olá a todos, consegui inplementar um servlet, sendo que não estou conseguindo passar a imagem para o JSP, como posso fazer, por favor, me ajudem!! :frowning:

Servlet

import java.awt.Color;  
import java.io.BufferedOutputStream;  
import java.io.ByteArrayOutputStream;  
import java.io.IOException;  
import java.io.OutputStream;  
  
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import org.jfree.chart.ChartFactory;  
import org.jfree.chart.ChartRenderingInfo;  
import org.jfree.chart.ChartUtilities;  
import org.jfree.chart.JFreeChart;  
import org.jfree.chart.entity.StandardEntityCollection;  
import org.jfree.chart.plot.CategoryPlot;  
import org.jfree.chart.plot.Plot;  
import org.jfree.chart.plot.PlotOrientation;  
import org.jfree.chart.renderer.category.BarRenderer3D;  
import org.jfree.data.category.DefaultCategoryDataset;  
import org.jfree.data.general.DefaultPieDataset;  
  
  
public class ChartServlet extends HttpServlet {  
       
    /** 
     * atributo serial; 
     */  
    private static final long serialVersionUID = -1997245402770915920L;  
  
    public void doGet(HttpServletRequest request, HttpServletResponse response)   
        throws ServletException, IOException {  
          
       doGeneratePieChart(request,response);  
          
    }  
      
    protected void doGeneratePieChart(HttpServletRequest request, HttpServletResponse response)   
        throws IOException, ServletException {  
          
        try {  
              
            DefaultPieDataset ds = new DefaultPieDataset();  
                ds.setValue("Norte", 13000000);  
                ds.setValue("Nordeste", 48000000);  
                ds.setValue("Centro-Oeste", 11000000);  
                ds.setValue("Sudeste", 73000000);  
                ds.setValue("Sul", 25500000);  
          
            JFreeChart chart =   
                ChartFactory.createPieChart("População Nacional", ds, true, false, false);// create your chart  
                chart.setBackgroundPaint(Color.white);  
                  
            ByteArrayOutputStream baos = new ByteArrayOutputStream();  
             
            ChartRenderingInfo info = new ChartRenderingInfo(new  StandardEntityCollection());  
              
            ChartUtilities.writeChartAsJPEG(baos, 1.0F, chart,400, 250, info);  
              
            response.setContentType("image/jpg");  
              
            OutputStream out = new BufferedOutputStream(response.getOutputStream());  
            out.write(baos.toByteArray());  
            out.flush();  
           // response.flushBuffer(); 
                       
          
            out.close();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}

JSP

<html>
<body>

<table>

<img src="ChartServlet">

</table>
</body>
</html>
EvaristoJava

Ola Natasha tudo bem ??

Vc conseguiu resolver seu problema ??
Tenta passar o parametro usando o RequestDispatcher da Servlet.E recuperar no JSP via EL “${}”.

Estou tentando utilizar o JFreechart com o Struts mas nao estou conseguindo .
Se por acaso vc conseguiu de outra forma e poder me informar eu agradeço.

Criado 13 de outubro de 2010
Ultima resposta 15 de dez. de 2010
Respostas 5
Participantes 3