gpt4 book ai didi

java - 使用JasperReports,Hibernate和Spring时发生奇怪的错误

转载 作者:行者123 更新时间:2023-12-01 12:41:15 26 4
gpt4 key购买 nike

尝试打印报告时出现一个奇怪的错误。

Handler processing failed; nested exception is java.lang.VerifyError: class org.codehaus.groovy.runtime.callsite.GroovySunClassLoader$2 overrides final method visit.(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V


请任何人提出解决方案。

这是打印jasper报告的代码。

@RequestMapping("/report")
public String displayReport(Map<String,Object> map){

System.out.println("Hello");
String sourceFileName = "D://jasper"
+ "/report2.jrxml";
String jasperFileName = "D://jasper"
+ "/report2.jasper";

List<Project> projectList=projectService.getAllproject();
String printFileName = null;
JRBeanCollectionDataSource beanColDataSource =
new JRBeanCollectionDataSource(projectList);

try{

// 1. Add report parameters
HashMap<String, Object> parameters= new HashMap<String, Object>();

parameters.put("ReportTitle", "Project Details");
parameters.put("Author", "Prepared By Priyanka");

JasperCompileManager.compileReportToFile(sourceFileName);
printFileName = JasperFillManager.fillReportToFile(jasperFileName,
parameters, beanColDataSource);
if (printFileName != null) {
/**
* 1- export to PDF
*/
JasperExportManager.exportReportToPdfFile(printFileName,
"D://jasper/sample_report.pdf");

/**
* 2- export to HTML
*/
JasperExportManager.exportReportToHtmlFile(printFileName,
"D://jasper/sample_report.html");

/**
* 3- export to Excel sheet
*/
JRXlsExporter exporter = new JRXlsExporter();

exporter.setParameter(JRExporterParameter.INPUT_FILE_NAME,
printFileName);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,
"D://jasper/sample_report.xls");

exporter.exportReport();
}
} catch (JRException e) {
e.printStackTrace();
}


return "report";


}


并且堆栈跟踪如下:

严重:路径为[/ Project5]的上下文中的servlet [spring]的Servlet.service()抛出异常[处理程序处理失败;嵌套异常是java.lang.VerifyError:类org.codehaus.groovy.runtime.callsite.GroovySunClassLoader $ 2覆盖了最终方法的访问。(IILjava / lang / String; Ljava / lang / String; Ljava / lang / String; [Ljava / lang / String;)V]的根本原因
java.lang.VerifyError:类org.codehaus.groovy.runtime.callsite.GroovySunClassLoader $ 2覆盖了最终方法的访问。(IILjava / lang / String; Ljava / lang / String; Ljava / lang / String; [Ljava / lang / String; )V
在java.lang.ClassLoader.defineClass1(本机方法)
在java.lang.ClassLoader.defineClass(未知来源)
在java.security.SecureClassLoader.defineClass(未知来源)
在org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)
在org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
在org.codehaus.groovy.runtime.callsite.CallSiteGenerator.isCompilable(CallSiteGenerator.java:243)
在org.codehaus.groovy.reflection.CachedMethod.createPojoMetaMethodSite(CachedMethod.java:239)
在org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.createCachedMethodSite(PojoMetaMethodSite.java:158)
在org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.createPojoMetaMethodSite(PojoMetaMethodSite.java:147)
在groovy.lang.MetaClassImpl.createPojoCallSite(MetaClassImpl.java:2979)
在org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:114)
在org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:148)
在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:121)
在org.codehaus.groovy.ast.builder.AstBuilderTransformation.visit(AstBuilderTransformation.groovy:61)
在org.codehaus.groovy.transform.ASTTransformationVisitor $ 3.call(ASTTransformationVisitor.java:268)
在org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:799)
在org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:464)
在net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:109)
在net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:201)
在net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:354)
在net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:270)
在net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:229)
在net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:539)
在com.mvc.project.controller.ProjectController.displayReport(ProjectController.java:224)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
在java.lang.reflect.Method.invoke(未知来源)
在org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
在org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
在org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)处
在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
在org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
在org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:589)
在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312)
在java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)
在java.lang.Thread.run(未知来源)

最佳答案

report2.jrxml文件标题中的language属性设置为groovy,而不是Java。

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" 
...
language="groovy"
...>


更改为

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" 
...
language="java"
...>

关于java - 使用JasperReports,Hibernate和Spring时发生奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com