<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Graphs</display-name>
<description>Teste de aplicação usando Cewolf</description>
<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>
<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>
Grafico Não Aparece [CeWolf]
15 Respostas
De uma olhada nesse tutorial, aqui tem um exemplo bem facil de fazer:
Eu já tô usando esse tutorial Pedrosa!!! :lol:
O chato é que não diz nada o pq do erro…e nenhum chart aparece!
Eu tava tendo problemas também, sua query está correta? veja o que ela tah te retornando e post o código ai.
Eu tava tendo problemas também, sua query está correta? veja o que ela tah te retornando e post o código ai.Justamente para não ter problemas de BD, eu populei para testes com dados falsos:
public class EmpresasListadas implements DatasetProducer {
private static final long serialVersionUID = 1L;
PreparedStatement ps = null;
Logger log = Logger.getLogger(EmpresasListadas.class);
private final String[] empresas = {"ITAIPU","CEPEL","ELETROBRÁS","CESPE","BOA VISTA","COCEL","GE","CNEE","ELETRONORTE","CHESP","CELB"};
private final String[] seriesNames ={"Faturamento(Em R$ milhões)"};
String query="";
public String getProducerId() {
return "ListaDeEmpresasEletricas";
}
// O dados deste dataset é invalidado imediatamente. O tempo de retorno influencia no cache do cewolf
public boolean hasExpired(Map arg0, Date arg1) {
return (System.currentTimeMillis() - arg1.getTime()) > 5000;
//return true;
}
public Object produceDataset(Map arg0) throws DatasetProduceException {
log.debug("producing data.");
//Criando um Dataset para o gráfico
DefaultCategoryDataset ds = new DefaultCategoryDataset(){
protected void finalize() throws Throwable {
super.finalize();
log.debug(this +" finalized.");
}
};
for (int series = 0; series < seriesNames.length; series ++) {
int lastY = (int)(Math.random() * 1000 + 1000);
for (int i = 0; i < empresas.length; i++) {
final int y = lastY + (int)(Math.random() * 200 - 100);
lastY = y;
ds.addValue(y, seriesNames[series], empresas[i]);
}
}
return ds;
}
}
a saida HTML ta mais ou menos assim
<IMG BORDER="0" HEIGHT="300" WIDTH="300" ALT="" src="/cewolfexample-1.0/cewolf;jsessionid=CED8CCB70C8648FAB7203D56A63D0781?img=997480597&width=300&height=300&iehack=.png">
No browser aparece o icone de erro qdo a imagem não é carregada?
No browser aparece o icone de erro qdo a imagem não é carregada?Nop.Só aparece isso: Cewolf servlet up and running. Requests served so far: 0 Meu cód html é esse:
<%@ page contentType="text/html; charset=iso-8859-1" errorPage="" %>
<%@ taglib uri="/WEB-INF/cewolf-1.1.tld" prefix="cewolf"%>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<title>Lista De Empresas</title></head>
<body> <jsp:useBean id="graficoDS" class="graphs.report.EmpresasListadas"/>
<center><h3>GRÁFICOS DE LINHAS DAS EMPRESAS</h3></center>
<!-- GRÁFICO COLUNA 3D -->
<cewolf:chart id="grafico" title="Empresas Listadas por Nome" type="verticalbar3d"
xaxislabel="Nome" yaxislabel="Valor">
<cewolf:gradientpaint>
<cewolf:point x="0" y="0" color="#FBFBFB" />
<cewolf:point x="350" y="0" color="#F3F3F3" />
</cewolf:gradientpaint>
<cewolf:data>
<cewolf:producer id="graficoDS" />
</cewolf:data>
</cewolf:chart>
<cewolf:img chartid="grafico" renderer="/cewolf" width="710" height="380"/>
<br/><br/>
</body>
</html>
Muito estranho mesmo. Eu nunca vi esse erro.
E procurando no google, só tem apenas uma e tão somente uma referencia para o erro. 
No site do Cewolf tem uma app exemplo verifica se ela roda normalmente.
OMFG! :shock:
Acontece a mesma coisa com esse exemplo… :evil:
Não acredito q corro o risco de ter q fazer uns 100 relatórios com gráficos para exibir na web “na mão”… 
Acho bom ir fazendo um estoque de comida, e de guias sobre JFreeChart, não vou sair de casa tão cedo(trabalho em casa)… :roll:
OMFG! :shock:
Acontece a mesma coisa com esse exemplo… :evil:
Mas não é possivel.
Começa a apelar, troca o conteiner. No meu teste eu usei o JBoss4 com tomcat.
Não acredito q corro o risco de ter q fazer uns 100 relatórios com gráficos para exibir na web “na mão”…![]()
Nem sei o q dizer…
Acho bom ir fazendo um estoque de comida, e de guias sobre JFreeChart, não vou sair de casa tão cedo(trabalho em casa)… :roll:
O q vc está pensando em fazer? salvar os graficos em disco? criar custom tags próprias?
Bons códigos!
[size=9]PS. Deve ser legal trabalhar em casa.[/size]
Vou testar com o jetty… eu uso o tomcat 5.5.16…
É coisa pra caramba… mas talvez eu não feche o serviço por isso… com o cewolf o trabalho cairia bem…(diminuiria) tendo que fazer na mão eu vou ter q pedir mais pelo tempo que eu vou levar…
Eu não posso nem dizer ainda “o que eu quero fazer” pq até segunda eu nem tinha usado o JFreeChart nem tinha tido a necessidade de fazer algo parecido… idéias serão apreciadas(bem-vindas)!
Sim e Não.
Vc pode pegar um BufferedImage do JFreeChart e depois usar-lo no ImageEncode para por no response de um servlet.
Vc pode pegar um BufferedImage do JFreeChart e depois usar-lo no ImageEncode para por no response de um servlet.
O negócio é eu descobrir como fazer isso de uma forma automatizada.
Vc tem um exemplo de JFreeChart na web???No Developers Guide tem um, pena q ele é pago(mas no caso eu acho q vou comprar se fechar negócio).
e brigadão pela ajuda!Continue fazendo aqueles tutorias no seu site q são punks!Muito bons mesmo! :thumbup:
Vc pode pegar um BufferedImage do JFreeChart e depois usar-lo no ImageEncode para por no response de um servlet.
O negócio é eu descobrir como fazer isso de uma forma automatizada.
Vc tem um exemplo de JFreeChart na web???No Developers Guide tem um, pena q ele é pago(mas no caso eu acho q vou comprar se fechar negócio).
Essa eu vou ficar devendo, deve ser dificil achar algo desse tipo pois o cewolf tem exatamente esse proposito, por o JFreeChart pra funcionar na web. Pena q não funcione com vc.
e brigadão pela ajuda!Continue fazendo aqueles tutorias no seu site q são punks!Muito bons mesmo! :thumbup:
Valew!
Essa eu vou ficar devendo, deve ser dificil achar algo desse tipo pois o cewolf tem exatamente esse proposito, por o JFreeChart pra funcionar na web.Até que por para funcionar na Web é fácil.O problema são os detalhes.(como isolar as jsp´s por exemplo).Olha um exemplo simples de JFreeChart na web:
import java.io.IOException;
import java.io.OutputStream;
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.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class ServletGrafico extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream out = response.getOutputStream();
try{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10.8, "Sun", "Quadrimestre 1");
dataset.addValue(7.0, "Sun", "Quadrimestre 2");
dataset.addValue(15.0, "Sun", "Quadrimestre 3");
dataset.addValue(-5.0, "Apple", "Quadrimestre 1");
dataset.addValue(-7.2, "Apple", "Quadrimestre 2");
dataset.addValue(14.0, "Apple", "Quadrimestre 3");
dataset.addValue(6.4, "IBM", "Quadrimestre 1");
dataset.addValue(17.9, "IBM", "Quadrimestre 2");
dataset.addValue(-12.3, "IBM", "Quadrimestre 3");
dataset.addValue(7.1, "EDS", "Quadrimestre 1");
dataset.addValue(15.6, "EDS", "Quadrimestre 2");
dataset.addValue(13.5, "EDS", "Quadrimestre 3");
dataset.addValue(-8.1, "Micosoft", "Quadrimestre 1");
dataset.addValue(-6.3, "Micosoft", "Quadrimestre 2");
dataset.addValue(10.8, "Micosoft", "Quadrimestre 3");
JFreeChart chart = ChartFactory.createBarChart3D("Faturamento no ano (em R$ Milhões)",
"Empresas:", "Valor Faturado(Em relação ao ano anterior)", dataset, PlotOrientation.VERTICAL,
true, true, false);
response.setContentType("image/jpeg");
ChartUtilities.writeChartAsJPEG(out, chart, 640, 480);
}catch (Exception e) {
System.err.println(e.toString());
}finally {
out.close();
}
}
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet><servlet-name>ServletGrafico</servlet-name>
<servlet-class>ServletGrafico</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletGrafico</servlet-name>
<url-pattern>/ServletGrafico</url-pattern>
</servlet-mapping>
</web-app>
Bom dia Furutani, blz?
Cara, me tira uma dúvida, estou usando o cewolf e tudo está funcionando legalzinho, mas aí, gostaria de sabercomo eu faço pra setar as cores da legenda com as mesmas cores que eu seto no chart.
O chart abre com as cores default, que é muito legal, mas se eu seto o chart para as barras ficarem azuis, por exemplo, a legenda não assume essa configuração. Já fiz algumas tentativas, mas não consegui descobrir como fazer as cores ficarem iguais, tanto em um qto no outro.
Pra esclarecer mais:
Tenho 4 barras, carros, caminhões, motos e picapes. Logo, a legenda vai plotar os mesmos itens, certo? Sendo assim, as cores default seriam para ambos vermelho, azul, verde e amarelo.
Eu consido setar as barras para ficarem todas azuis ou qq outra cor que eu queira, mas não estou conseguindo fazer o mesmo com a legenda. Poderia me mostrar um exemplo de como fazê-lo?
Desde já agradeço sua atenção.
1 abc