jfreechart pie String Error

UI Components for JSF
Post Reply
ramo.karahasan
Posts: 76
Joined: 18 Apr 2010, 23:57

02 Sep 2010, 16:44

Hi,

i've implemented a jfreechart like this:

Code: Select all

@ManagedBean(name="dynamicImage")
@RequestScoped
public class DynamicImage {

	private StreamedContent chart;

	/**
	 *
	 */
	public DynamicImage() {
		try{
			JFreeChart jfreechart = ChartFactory.createPieChart("Turkish cities", createDataset(), true, true, false);
			File chartFile = new File("dynamicchart");
			ChartUtilities.saveChartAsPNG(chartFile, jfreechart, 375, 300);
			chart = new DefaultStreamedContent(new FileInputStream(chartFile), "image/png");
		}catch(Exception e){
			e.printStackTrace();
		}
	}

	private PieDataset createDataset(){
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("Istanbul", new Double(45.0));
		dataset.setValue("Ankara", new Double(15.0));
		dataset.setValue("Izmir", new Double(25.2));
		dataset.setValue("Antalya", new Double(14.8));

		return dataset;
	}

	public StreamedContent getChart() {
		return chart;
	}

	public void setChart(StreamedContent chart) {
		this.chart = chart;
	}




Facelet:

Code: Select all

<h1>Jfree PieChart</h1>

<h:graphicImage value="#{dynamicImage.chart}" />
If i load this site, i get the following message:

Code: Select all

SCHWERWIEGEND: Error Rendering View[/index.xhtml]
java.lang.ClassCastException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
	at com.sun.faces.renderkit.RenderKitUtils.getImageSource(RenderKitUtils.java:1282)
	at com.sun.faces.renderkit.html_basic.ImageRenderer.encodeEnd(ImageRenderer.java:97)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
	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:313)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
i'm using primefaces 2.1 for this on tomcat 6.x . i've took the code from the documentation...

Thank you for any hint!

Ramo

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

02 Sep 2010, 16:50

Code: Select all

<h:graphicImage value="#{dynamicImage.chart}" />
should be;

Code: Select all

<p:graphicImage value="#{dynamicImage.chart}" />

ramo.karahasan
Posts: 76
Joined: 18 Apr 2010, 23:57

02 Sep 2010, 16:54

Thank you...


to many radiaton for a day :)


Greetings,
Ramo

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 37 guests