Problema com JFreeChart e CeWOLF

5 respostas
A

Pessoal, estou tentando gerar um gráfico utilizando o JFreeChart e CeWolf.
O gráfico não é gerado, apenas aparece um quadro de imagem com erro (aquelas com um “X”). E para ajudar, não aparece nenhuma mensagem de erro. Estou ultilizando o WSAD 5.1.1

Utilizei todos os passos descritos em na JavaMagazine nro 23.

Alguma sujestao?

Obrigado

5 Respostas

V

Vc usou só as Tags do Cewolf ou também fez algum código usando JFreeChart?

Mostra o conteúdo do JSP usado pra gerar o gráfico.

ps.:
Chegaste a instalar os exemplos do Cewolf no teu container web? Funcionou?

A

Ae Brother…

Esse aki é o código JSP:

.
.
.
<jsp:useBean id="dados" class="com.projecao.servlets.Chart" />

<cewolf:chart id="graf" title="Teste 2" type="pie" showlegend="false">
	<cewolf:data>
		<cewolf:producer id="dados" />
	</cewolf:data>
</cewolf:chart>

<p>
<cewolf:img chartid="graf" renderer="cewolf" width="400" height="300" />
</p>
.
.
.

E esse aqui é o código java:

package com.projecao.servlets;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.chart.JFreeChart;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.taglib.tags.SimpleChartTag;

public class Chart implements DatasetProducer, Serializable {

	public Object produceDataset(Map arg0) throws DatasetProduceException {
		
		DefaultPieDataset ds = new DefaultPieDataset();
		
		ds.setValue("Norte", 12000);
		ds.setValue("Sul", 22000);
		ds.setValue("Leste", 32000);
		ds.setValue("Oeste", 42000);
		return ds;
		

	}

	public boolean hasExpired(Map arg0, Date arg1) {
		return (System.currentTimeMillis() - arg1.getTime()) > 5000;
	}
	
	public String getProducerId() {
		return "Chart";
	}

}

Valeu cara!

V

eu gero deste modo:

implementei um DatasetProducer com o seguinte construtor
public class EstatisticaDatasetProducer implements DatasetProducer, PieToolTipGenerator, Serializable
    ...
    public EstatisticaDatasetProducer(Map data) {
        this.data = data;
        this.ds = new DefaultPieDataset();
        this.total = 0;
        if (this.data != null) {
            for (Iterator iter = this.data.keySet().iterator(); iter.hasNext();) {
                String chave = (String) iter.next();
                Number valor = (Number) this.data.get(chave);
                this.total += valor.doubleValue();
                this.ds.setValue(chave, valor);
            }
        }
        
        percFormat = NumberFormat.getPercentInstance(local);
        percFormat.setMaximumFractionDigits(3);
        formatInteger = NumberFormat.getNumberInstance(local);
        formatDouble = NumberFormat.getCurrencyInstance(local);
    }
...
JSP ('data' é um atributo de sessao que contém um DatasetProducer)
<cewolf:chart id="pie3d" title="<%=(String)request.getAttribute("tituloGraf")%>" type="pie3D" showlegend="false" >
      <cewolf:colorpaint color="#0066CC" />
      <cewolf:data>
        <cewolf:producer id="data" />
      </cewolf:data>
    </cewolf:chart>
    <cewolf:img chartid="pie3d" renderer="cewolf" width="460" height="332" >
      <cewolf:map tooltipgeneratorid="data"/>
    </cewolf:img>

qualquer dúvida ou sugestão ao código fique a vontade

J

Eu tive esse mesmo problema usando o Cewolf, mas resolvi da
seguinte forma:

Na verdade o problema não está no código java ou nas
tags cewolf, o único problema é que onde vc está colocando
renderer=“cewolf” vc deve colocar renderer="/cewolf"
pois o servlet renderizador é enxergado somente na raiz do projeto.

OBS: é bom vc verificar se o servlet renderizador realmente está
ativo. Posicione o seu browser na raiz do projeto e chame
cewolf?state se o browser retornar uma mensagem
de confirmação é pq o cewolf está ativo, se não vc deve ter configurado o web.xml errado.

Espero ajudar com isso.

A

Valeu Jefferson,

Funcionou, porém, outra coisa que precisei fazer, foi utilizar a versão 0.9.13 do JFreeChart, pois mesmo com essa úçtima dica não estava funcionando, pois a versão do JFreeChart que eu estava usando era a 1.0

[]'s a todos

Criado 5 de julho de 2005
Ultima resposta 11 de jul. de 2005
Respostas 5
Participantes 3