2014-11-25 65 views
0

我已经成功地使基于Spring MVC的2.5应用程序在此示例:Spring Web MVC - Spring Web Flow Working With JasperReports报告的异常与Spring MVC 2.5,JasperReport的5.5,iReport的5.5,Tomcat的6

但是当我试图访问内置的报告的PDF查看与IREPORT 5.5我有这个例外:

Etat HTTP 500 - Request processing failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mbamsusers': Initialization of bean failed; nested exception is java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseStyle to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphContainer in instance of net.sf.jasperreports.engine.base.JRBaseParagraph 

type Rapport d'exception 

message Request processing failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mbamsusers': Initialization of bean failed; nested exception is java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseStyle to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphContainer in instance of net.sf.jasperreports.engine.base.JRBaseParagraph 

description Le serveur a rencontré une erreur interne qui l'a empêché de satisfaire la requête. 

exception 

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mbamsusers': Initialization of bean failed; nested exception is java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseStyle to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphContainer in instance of net.sf.jasperreports.engine.base.JRBaseParagraph 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
cause mère 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mbamsusers': Initialization of bean failed; nested exception is java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseStyle to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphContainer in instance of net.sf.jasperreports.engine.base.JRBaseParagraph 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:478) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
    java.security.AccessController.doPrivileged(Native Method) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) 
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) 
    org.springframework.web.servlet.view.ResourceBundleViewResolver.initFactory(ResourceBundleViewResolver.java:244) 
    org.springframework.web.servlet.view.ResourceBundleViewResolver.loadView(ResourceBundleViewResolver.java:186) 
    org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:159) 
    org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:78) 
    org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1205) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1154) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
cause mère 

java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseStyle to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphContainer in instance of net.sf.jasperreports.engine.base.JRBaseParagraph 
    java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2063) 
    java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1241) 
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1995) 
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
    java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:499) 
    net.sf.jasperreports.engine.base.JRBaseStyle.readObject(JRBaseStyle.java:1429) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:601) 
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) 
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1891) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) 
    java.util.ArrayList.readObject(ArrayList.java:733) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:601) 
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) 
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1891) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989) 
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1913) 
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796) 
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) 
    net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:192) 
    org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.loadReport(AbstractJasperReportsView.java:516) 
    org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.loadReport(AbstractJasperReportsView.java:498) 
    org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.initApplicationContext(AbstractJasperReportsView.java:327) 
    org.springframework.context.support.ApplicationObjectSupport.initApplicationContext(ApplicationObjectSupport.java:119) 
    org.springframework.web.context.support.WebApplicationObjectSupport.initApplicationContext(WebApplicationObjectSupport.java:69) 
    org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:73) 
    org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:70) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:350) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1329) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
    java.security.AccessController.doPrivileged(Native Method) 
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) 
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) 
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) 
    org.springframework.web.servlet.view.ResourceBundleViewResolver.initFactory(ResourceBundleViewResolver.java:244) 
    org.springframework.web.servlet.view.ResourceBundleViewResolver.loadView(ResourceBundleViewResolver.java:186) 
    org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:159) 
    org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:78) 
    org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1205) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1154) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.36. 

Apache Tomcat/6.0.36 

我一直没能解决这个问题一个星期。请帮帮我。

+0

您在使用bean初始化时遇到问题。你能提供战争档案吗? – 2014-11-25 10:51:33

+0

嗨Vitaliy临,thx为您的答复!我已经在Dropbox上发布了war文件链接:https://www.dropbox.com/s/p3ykhq5fp5ny0c1/mbams.war?dl=0谢谢! – 2014-11-25 14:55:53

+0

我检查了战争。我不知道问题的原因。 但我认为spring不能创建org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView的mbamsusers bean实例,因为/WEB-INF/reports/SpringJasperReportsspring.jasper文件不正确或不对应jasper报告库的版本。 或者可能是spring-webmvc.jar不对应jasper报告库。 你有4个版本的/ lib目录碧玉报告: JasperReports的-2.0.3.jar, JasperReports的-3.5.3.jar, JasperReports的-5.5.0.jar, JasperReports的-5.6.1.jar。 我想你需要一个jasper报告库jar文件 – 2014-11-27 11:05:49

回答

0

谢谢你的帮助。 你是对的,但我只在类路径中添加一个jasperreport版本。

要解决此问题,我将所有必需的库从ireport安装文件夹复制到lib文件夹,并且错误消失。

commons-beanutils-1.8.2.jar 
commons-collections-3.2.1.jar 
commons-dbcp-1.2.2.jar 
commons-digester-1.7.jar 
commons-logging-1.1.jar 
commons-pool-1.3.jar 
hsqldb-1.8.0-10.jar 
iText-2.1.7.jar 
jasperreports-4.0.1.jar 
jasperreports-chart-themes-4.0.1.jar 
jasperreports-extensions-3.5.3.jar 
jasperreports-fonts-4.0.1.jar