SSH+JFreeChart,开启tomcat报异常,求大神赐教!

观鱼塘主 观鱼塘主 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下是异常:SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'PiechartAction' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed;
nested exception is java.lang.NoClassDefFoundError:org/jfree/data/general/PieDataset

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:965)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
at java.lang.Class.getConstructor0(Class.java:2714)
at java.lang.Class.getDeclaredConstructor(Class.java:2002)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:65)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:958)
... 37 more
Caused by: java.lang.ClassNotFoundException: org.jfree.data.general.PieDataset
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
... 43 more


关于JFreeChart的相关jar包有三个:
gnujaxp.jar
jcommon-1.0.17.jar
jfreechart-1.0.14.jar


applicationContext.xml配置如下:
<bean id="PiechartDAO" class="dao.PiechartDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<bean id="PiechartService" class="service.PiechartService">
<property name="piechartDao">
<ref bean="PiechartDAO" />
</property>
</bean>

<bean id="PiechartAction" class="action.PiechartAction" >
<property name="piechartService">
<ref bean="PiechartService" />
</property>
</bean>


action里面内容如下:

package action;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.labels.StandardPieToolTipGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.util.Rotation;

import entity.Piechart;

import service.PiechartService;

public class PiechartAction implements ServletRequestAware {
private PiechartService piechartService=null;
private HttpServletRequest request=null;

public String getPiechartExample(){
Piechart piechart = piechartService.getPiechartExample();

//获取数据集
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("JAVA", piechart.getJava());
dataset.setValue("C", piechart.getC());
dataset.setValue(".NET", piechart.getNet());

//创建JFreeChart对象
JFreeChart chart = ChartFactory.createPieChart(piechart.getTitle(), dataset, true, true, false);
//设置标题字体,为了防止中文乱码
chart.setTitle(new TextTitle("公司组织架构统计图",new Font("黑体",Font.ITALIC,22)));

//取得统计图标的第一个图例
LegendTitle legend=chart.getLegend(0);
//修改图例的字体,必须把显示图片设置为ture,否则会包空指针异常
legend.setItemFont(new Font("宋体",Font.BOLD,20));

//取得图表显示对象(与柱状图和折线图不同)
PiePlot plot=(PiePlot) chart.getPlot();
//设置区块标签的字体==为了防止中文乱码:必须设置字体
plot.setLabelFont(new Font("隶书",Font.BOLD,22));
//图形边框颜色
plot.setBaseSectionOutlinePaint(Color.BLUE);
//图形边框粗细
plot.setBaseSectionOutlineStroke(new BasicStroke(0.5f));
//设置饼状图的绘制方向,可以按顺时针方向绘制,也可以按逆时针方向绘制
plot.setDirection(Rotation.ANTICLOCKWISE);//逆时针,Rotation.CLOCKWISE顺时针
//设置绘制角度(图形旋转角度)
plot.setStartAngle(70);
//设置突出显示的数据块
//plot.setExplodePercent(1, 0.5D);
//plot.setExplodePercent("One", 0.5D);
//扇区分离显示,对3D图不起效
plot.setExplodePercent(dataset.getKey(0), 0.1d);
//分类标签与图的连接线颜色
plot.setLabelLinkPaint(Color.BLUE);
//分类标签边框颜色
plot.setLabelOutlinePaint(Color.black);
//分类标签阴影颜色
plot.setLabelShadowPaint(Color.RED);
//指定分类饼的颜色
plot.setSectionPaint(1, Color.BLACK);
//饼状图标签显示百分比 :自定义,{0}表示选项,{1}表示数值,{2}表示所占比例,小数点后两位
plot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}:{1}\r\n{2}",NumberFormat.getNumberInstance(),new DecimalFormat("0.00%")));

//图例显示百分比
plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={2}"));
//指定显示的拼图为:圆形(true),还是椭圆形(false)
plot.setCircular(true);
//没有数据的时候显示的内容
plot.setNoDataMessage("没有可用的数据...");

//设置鼠标悬停提示
plot.setToolTipGenerator(new StandardPieToolTipGenerator());
//设置热点链接
//plot.setURLGenerator(new StandardPieURLGenerator("detail.jsp"));

drawToOut(chart);
return "success";
}

//生成饼状图形
public static void drawToOut(JFreeChart chart){
FileOutputStream fos=null;
try {
fos = new FileOutputStream("d://1.jpg");
ChartUtilities.writeChartAsJPEG(fos, chart, 1400, 800);

} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(fos!=null){
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("成功");
}

public void setRequest(HttpServletRequest request) {
this.request = request;
}

public void setServletRequest(HttpServletRequest request) {
this.setRequest(request);
}

public PiechartService getPiechartService() {
return piechartService;
}

public void setPiechartService(PiechartService piechartService) {
this.piechartService = piechartService;
}

public HttpServletRequest getRequest() {
return request;
}
}

问题描述完了。
像这种ClassNotFound类似的错误貌似是包的问题,但是搞了半天还是没有找到解决方案。
各位大神有什么高见吗?



PS:我将与JFreeChart有关的代码注释掉的话,tomcat就能正常启动。
...全文

相关推荐

大学生互动平台1(ssh+ext+jfreechart+部分报表功能)

页面显示采用jsp部分用struts标签,业务逻辑层采用spring,持久层采用hibernate,数据库采用mysql.(用户名密码都是root),tomcat端口号8080.后台界面采用ajax框架ext非常漂亮。可以管理多个社团网站。采用jfreechart显示社团人数对比。社团申请会在服务器端生成pdf申请表格(带有照片)由于上传限制只能分两次传,请见谅,不过不会让你失望的。这一部分不包括jar包 最近又新上传了一个大学生社团互动平台管理系统,是这个系统的改良版,,多加了用log4j实现的日志系统,项目运行时会打印Debug级别以上的信息到E盘scstnddd.log日志文件中,方便调试与查出错误。还用自定义的过滤器实现后台登陆权限的实现,还改了一部分代码,既能在IE上展现,又能在Firefox下展现同时项目也可以在Weblogic下部署,我已经改好了。(原来是在tomcat下).

zs12344444

宠物医院管理系统毕业设计:从数据库设计到SSH框架部署全解析

在JavaWeb开发中,信息管理系统是经典的实践方向,而围绕垂直行业的管理系统更是毕业设计与课程设计的高频选题。这类系统的核心在于理清业务角色与数据流转:从宠物档案、挂号记录到诊疗处方与收费结算,每一环都需要严谨的数据库设计和清晰的分层架构。基于SSH框架(Struts2+Spring+Hibernate)与MySQL的经典组合,系统能够实现角色权限隔离、业务闭环处理与数据聚合统计,既满足了教学场景对技术栈完整性的要求,又具备实际工程的可操作性。从环境搭建、SQL初始化到功能模块实现,再到常见问题的排查思路

weixin_34208185

基于ssh框架的教务管理系统

这是一个基于ssh框架的系统,一些功能已实现但是对于研究ssh很有帮助。

yuxiangyeye

SSH框架搭建

SSH框架搭建步骤详细的介绍附加截图. 1.jar 包下载 2.struts 配置 3.hibernate配置 4.spring配置

adiljan4

java web demo

demo 直接导入myeclipse 即可运行 包括: webserver ssh excle操作 jfreechart 图形报表 你值得拥有O(∩_∩)O~

crazyrico
评论 4
收藏 已收藏
分享
返回顶部
观鱼塘主
Web 开发 81,108 成员 341,721 内容