问题
Possible Duplicate:
How can i display pie chart in jsp page?
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="java.awt.*"%>
<%@ page import="java.io.*"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.chart.entity.*"%>
<%@ page import="org.jfree.data.general.*"%>
<%
DefaultPieDataset pieDataset = new DefaultPieDataset();
pieDataset.setValue("JavaWorld", new Integer(75));
pieDataset.setValue("Other", new Integer(25));
JFreeChart chart = ChartFactory.createPieChart("Sample Pie Chart",pieDataset,true,true,false);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pie Chart</title>
</head>
<body>
<IMG SRC="piechart.png" WIDTH="600" HEIGHT="400" BORDER="0"
USEMAP="#chart">
</body>
</html>
for this i use 2 jar files
1.jfreechart-0.9.4.jar
2.jcommon-0.7.1.jar
but it throw an exception.
6 Jun, 2012 10:03:12 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 33 in the jsp file: /pages/pieChart.jsp
DefaultPieDataset cannot be resolved to a type
30: out.println(e);
31:
32: } */
33: DefaultPieDataset pieDataset = new DefaultPieDataset();
34: pieDataset.setValue("JavaWorld", new Integer(75));
35: pieDataset.setValue("Other", new Integer(25));
36: JFreeChart chart = ChartFactory.createPieChart
An error occurred at line: 33 in the jsp file: /pages/pieChart.jsp
DefaultPieDataset cannot be resolved to a type
30: out.println(e);
31:
32: } */
33: DefaultPieDataset pieDataset = new DefaultPieDataset();
34: pieDataset.setValue("JavaWorld", new Integer(75));
35: pieDataset.setValue("Other", new Integer(25));
36: JFreeChart chart = ChartFactory.createPieChart
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.saveworks.application.AdminAuthenticationFilter.doFilter(AdminAuthenticationFilter.java:74)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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:127)
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:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Please any one can help me??
Thanks in advance.
回答1:
Please check your DefaultPieDatase
t class is there while compiling.
`DefaultPieDataset` cannot be resolved to a type
30: out.println(e);
when the JSP is compilet to servlet, it needs to resolve compile time errors.At that time, this class is not found.Check your jar files whether this class file is really present or not.
回答2:
1-what IDE you use
2-first you should try clean and build then run
3-make sure of the class path classpath errors
4-and you may just in case copy the jars to the Apachetomcat lib directory
5-if all is okay then make sure of you library jars it may be corrupted so redownload or its not included correctly or not at all ; make sure to include the jar with all its classes
i thought so then you should take alook at this these are specially for eclipse
link to jfreechart tutorial
look tutorial
回答3:
I prefer jqPlot. They support pie chart. See demo here.
This is free jQuery library that allow you to create interactive charts comparing to image generation.
来源:https://stackoverflow.com/questions/10908270/how-can-implenent-a-pie-chart-using-jfreechart-in-jsp