Erro PrimeFaces p:pieChain

3 respostas
R

Boa noite a todos estou desenvolvendo uma aplicação e preciso mostrar um gráfico, mas pesquisei pela net e não consegui achar a resposta para o erro que ta acntecendo segue a aplicação toda com o erro.

primefaces.xhtml

<!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:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui"
	xmlns:f="http://java.sun.com/jsf/core">

<h:head>
	<title>Gráfico venda por pais</title>
	<script type="text/javascript">
		var estiloGrafico{
			padding: 20,
			legend:{
				display:"right",
				spacing:10
			}
			
		};
	</script>
</h:head>

<h:body>
	<h3>Gráfico de vendas por pais</h3>
		<p:pieChart model="#{vendaBean.vendaPais}" var="venda"
		categoryField="#{venda.pais}" dataField="#{venda.total}" style="estiloGrafico"></p:pieChart>
</h:body>
</html>

Venda.java

package com.primefaces.pizza;

public class Venda {

	private String pais;
	private float total;
	
	public Venda(String pais, float total){
		this.pais = pais;
		this.total = total;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public float getTotal() {
		return total;
	}

	public void setTotal(float total) {
		this.total = total;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((pais == null) ? 0 : pais.hashCode());
		result = prime * result + Float.floatToIntBits(total);
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Venda other = (Venda) obj;
		if (pais == null) {
			if (other.pais != null)
				return false;
		} else if (!pais.equals(other.pais))
			return false;
		if (Float.floatToIntBits(total) != Float.floatToIntBits(other.total))
			return false;
		return true;
	}
	
	
	
}

VendaBean.java

package com.primefaces.pizza;

import java.util.ArrayList;
import java.util.List;

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

@ManagedBean(name="vendaBean")
@RequestScoped
public class VendaBean {

	private List<Venda> vendaPais;
	
	public VendaBean(){
		this.vendaPais = new ArrayList<Venda>();
		this.vendaPais.add(new Venda("Brasil", 500.50f));
		this.vendaPais.add(new Venda("Estados Unidos", 1000.50f));
		this.vendaPais.add(new Venda("Inglaterra", 300.50f));
		this.vendaPais.add(new Venda("França", 200.50f));
		this.vendaPais.add(new Venda("Alemanha", 700.50f));
	}

	public List<Venda> getVendaPais() {
		return vendaPais;
	}

	public void setVendaPais(List<Venda> vendaPais) {
		this.vendaPais = vendaPais;
	}
	
	
}
Erro
Dez 01, 2012 12:24:59 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [FacesServlet] in context with path [/ExemploGraficos] threw exception [java.util.ArrayList cannot be cast to org.primefaces.model.chart.PieChartModel] with root cause
java.lang.ClassCastException: java.util.ArrayList cannot be cast to org.primefaces.model.chart.PieChartModel
	at org.primefaces.component.chart.pie.PieChartRenderer.encodeData(PieChartRenderer.java:66)
	at org.primefaces.component.chart.pie.PieChartRenderer.encodeScript(PieChartRenderer.java:51)
	at org.primefaces.component.chart.pie.PieChartRenderer.encodeEnd(PieChartRenderer.java:36)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:424)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Ai está o código completo do gráfico e não consigo entender o erro agradeceria se alguém me ajudasse.

3 Respostas

R

Ninguem sabe o porque desse erro ?

aprendizweb

Para exibir o grafico vc tem que criar um objeto do tipo PieChartModel e setar os valores que serão apresentados.
http://www.primefaces.org/showcase-labs/ui/pieChart.jsf

R

Vlwww muito obrigado vou da uma olhada quando chegar em casa mas acho que isso vai resolve tudo procurei na net em quasa tudo e não tava encontrando nada sobre os erros encontrados vlw salvo minha aplicação aqui hehehe.

Criado 1 de dezembro de 2012
Ultima resposta 3 de dez. de 2012
Respostas 3
Participantes 2