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
[code]
<h:head>
Gráfico venda por pais
var estiloGrafico{
padding: 20,
legend:{
display:“right”,
spacing:10
}
};
</script>
</h:head>
<h:body>
Gráfico de vendas por pais
<p:pieChart model="#{vendaBean.vendaPais}" var=“venda”
categoryField="#{venda.pais}" dataField="#{venda.total}" style=“estiloGrafico”></p:pieChart>
</h:body> [/code]
Venda.java
[code]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;
}
}[/code]
VendaBean.java
[code]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;
}
}[/code]
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.