by nits » Thu Mar 05, 2009 12:03 pm
I am doing same thing whatever is mentioned in tutorial by justindsmith .
yaa it is great tutorial,but I am not able get Image.
I am using GWT-ext-2.0.5
I have imported all three jcommon-1.0.15.jar,jfreechart-1.0.12.jar,servlet.jar jfreeCharts .jar files under "WebContent/WEB-INF/lib"
Here I am going to put the code what I have done:
Added to gwt.xml file
<servlet class="com.gwtext.sample.showcase2.server.ChartingServiceImpl" path="/chartingService"/>
<servlet class="org.jfree.chart.servlet.DisplayChart" path="/displayChart"/>
SERVER CODE
package com.gwtext.sample.showcase2.server;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.general.DefaultPieDataset;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.gwtext.sample.showcase2.client.ChartingService;
public class ChartingServiceImpl extends RemoteServiceServlet implements ChartingService {
/**
*
*/
private static final long serialVersionUID = 1L;
public String getChart() {
/*
* Hold our stored chart name, it will be returned to the GWT caller.
*/
String chartName = "";
/*
* Create the data for this example.
*/
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("One", 10.0);
dataset.setValue("Two", 50.0);
dataset.setValue("Three", 30.0);
/*
* Generate the generic pie chart.
*/
JFreeChart chart = ChartFactory.createPieChart("New Pie Chart", dataset, false, false, false);
/*
* Save the chart as an '300px x 250px' jpeg image.
*/
try {
HttpSession session = getThreadLocalRequest().getSession();
chartName = ServletUtilities.saveChartAsJPEG(chart, 300, 250, null, session);
} catch(Exception e) {
// handle exception
}
/*
* Finally, return the chart name to the caller.
*/
return chartName;
}
}
Service class
package com.gwtext.sample.showcase2.server;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.general.DefaultPieDataset;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.gwtext.sample.showcase2.client.ChartingService;
public class ChartingServiceImpl extends RemoteServiceServlet implements ChartingService {
/**
*
*/
private static final long serialVersionUID = 1L;
public String getChart() {
/*
* Hold our stored chart name, it will be returned to the GWT caller.
*/
String chartName = "";
/*
* Create the data for this example.
*/
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("One", 10.0);
dataset.setValue("Two", 50.0);
dataset.setValue("Three", 30.0);
/*
* Generate the generic pie chart.
*/
JFreeChart chart = ChartFactory.createPieChart("New Pie Chart", dataset, false, false, false);
/*
* Save the chart as an '300px x 250px' jpeg image.
*/
try {
HttpSession session = getThreadLocalRequest().getSession();
chartName = ServletUtilities.saveChartAsJPEG(chart, 300, 250, null, session);
} catch(Exception e) {
// handle exception
}
/*
* Finally, return the chart name to the caller.
*/
return chartName;
}
}
Cleint code----1----
/**
*
*/
package com.gwtext.sample.showcase2.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Image;
import com.gwtext.client.widgets.MessageBox;
/**
* @author niteshk
*
*/
public class ChartImage extends Image {
private ChartingServiceAsync chartingService;
public ChartImage(){
super();
chartingService = (ChartingServiceAsync)GWT.create(ChartingService.class);
ServiceDefTarget endpoint = (ServiceDefTarget)chartingService;
String url = GWT.getModuleBaseURL() + "chartingService";
endpoint.setServiceEntryPoint(url);
chartingService.getChart(new AsyncCallback<String>(){
public void onFailure(Throwable caught) {
MessageBox.alert("came to failure.. Chart");
}
public void onSuccess(String result) {
System.out.println(" Came to success... Charting...");
String chartName = (String)result;
System.out.println(" Chart name is---"+ chartName);
String imageUrl = "./displayChart?filename=" + chartName;
// String imageUrl = "/showcase/WebContent/WEB-INF/lib//displayChart?filename=" + chartName;
setUrl(imageUrl);
}
});
}
}
Client---2-----
package com.gwtext.sample.showcase2.client.chart
public class Chart extends onLoadmodule(){
Panel pnl = new Panel();
Image img = new ChartImage();
pnl.add(img);
}
But Image is not being displayed..
I am getting following error in Google Web Development Toolkit Shell window
Please help What I have to do for get Chart Image..
Thanks in advance.
nits
[ERROR] Unable to instantiate 'com.gwtext.sample.showcase2.server.DisplayChartImpl'
java.lang.ClassNotFoundException: com.gwtext.sample.showcase2.server.DisplayChartImpl
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.google.gwt.dev.shell.GWTShellServlet.tryGetOrLoadServlet(GWTShellServlet.java:936)
at com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:277)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
[ERROR] Unable to dispatch request