Uso jfreechart dando erro ...java.lang.NullPointerException

4 respostas
P

Olá,

estou fazendo uns exemplo de jfreechart aparece até o grafico na tela mais me apresenta esse erro abaixo …

o que poderá ser …

abs

16/02/2011 11:41:33 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [FacesServlet] in context with path [/ExemplosGrafico] threw exception
java.lang.NullPointerException
	at com.sun.faces.lifecycle.RestoreViewPhase.notifyAfter(RestoreViewPhase.java:288)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:203)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
import java.io.File;
import java.io.FileInputStream;
import java.util.logging.Logger;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

@ManagedBean(name = "cidadeBean")
@RequestScoped
public class CidadeBean {

	private StreamedContent			grafico;
	private static final Logger	log	= Logger.getLogger(CidadeBean.class.getName());

	public CidadeBean() {
		try {
			JFreeChart graficoPizza = ChartFactory.createPieChart("5 cidades mais populosas de SC", this.geraDados(), true, true, false);
			File arquivoGrafico = new File("pizza.png");
			ChartUtilities.saveChartAsPNG(arquivoGrafico, graficoPizza, 500, 300);
			this.grafico = new DefaultStreamedContent(new FileInputStream(arquivoGrafico), "image/png");
		} catch (Exception e) {
			log.severe(e.getMessage());
		}
	}

	private DefaultPieDataset geraDados() {
		DefaultPieDataset dts = new DefaultPieDataset();
		dts.setValue("Joinville", new Double(497331.0));
		dts.setValue("Blumenau", new Double(299416.0));
		dts.setValue("Chapecó", new Double(174187.0));
		dts.setValue("Criciúma", new Double(188557.0));
		dts.setValue("Florianopólis", new Double(408161.0));
		return dts;
	}

	public StreamedContent getGrafico() {
		return grafico;
	}

	public void setGrafico(StreamedContent grafico) {
		this.grafico = grafico;
	}
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
	<h:head>
		<title>Popula��o das cidades catarinenses</title>
	</h:head>
	<h:body>
		<p:graphicImage value="#{cidadeBean.grafico}" />
	</h:body>
</html>

4 Respostas

P

ainda estou com esse problema…

diogoprosoft

Cara vc conseguiu resolver esse problema?

A

Você conseguiu resolver?

Estou com o mesmo problema, porém, o erro corre apenas no jsf 2, no 1.2 funciona sem problemas.

A

Pessoal,

O problema ocorre quando o bean está em escopo view, se você alterar o escopo para session ou request funciona!

Pelo que vi tem várias pessoas com esse mesmo problema, e não encontraram outra solução a não ser alterar o escopo.

Estou utilizando a versão jfreechart-1.0.14, o problema também ocorre na versão jfreechart-1.0.13.

Abs

Criado 16 de fevereiro de 2011
Ultima resposta 16 de mar. de 2012
Respostas 4
Participantes 3