难道没有人试过SSH+JFreeChart的么?怎么没有人拔刀相助小生呢?

观鱼塘主 2013-06-16 01:05:12
之前发了一个帖子
关于SSH+JFreeChart开启Tomcat异常的帖子,都不由人回啊!跪求大神指点哪、、、啊啊啊啊啊
...全文
105 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
观鱼塘主 2013-06-16
  • 打赏
  • 举报
回复
以下是异常: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就能正常启动。 TomcatSSH异常jfreechart
桃园闲人 2013-06-16
  • 打赏
  • 举报
回复
你连什么问题,报什么错都不说,神知道你遇到什么问题了!!!!
桃园闲人 2013-06-16
  • 打赏
  • 举报
回复
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 错误信息说PiechartAction这个bean常见失败,是由于在该内中引用的PieDataset找不到类org/jfree/data/general/PieDataset,展开包看看是否含有这个类,如果有可能是jar冲突,相同的删除低版本的jar文件。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧