ireport报表出错了

时间:2022-11-25 08:26:55
aciton

public class ReportAction extends BaseAction {
private static final long serialVersionUID = 1L;

List myList = new ArrayList();
@Autowired
private RoomDao RoomDao;

public String execute() throws Exception {

myList = RoomDao.getRoom(); //数据库查出来的数据也不知道有没有用
try {

String reportSource;
reportSource = ServletActionContext.getServletContext().getRealPath("/jasper/report3.jrxml");
File parent = new File(reportSource).getParentFile();
// 将.jrxml模板文件编译成为.jasper文件,当然,其文件名可以指定,如果没指定,则与.jrxml文件名一样.只是后缀不同而已
JasperCompileManager.compileReportToFile(reportSource, new File(parent, "compiled_jasper_template.jasper").getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}

public List getMyList() {
return myList;
}
}


struts2 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="rep" extends="default,jasperreports-default" namespace="/rep">
<!--<result-types>
<result-type name="jasper"
class="org.apache.struts2.views.jasperreports.JasperReportsResult" />
</result-types>
-->
<action name="PDF" class="ReportAction">
<result name="success" type="jasper">
<param name="location">
/jasper/report3.jasper
                </param>
<param name="dataSource">myList</param>
<param name="format">PDF</param>
</result>
</action>

<action name="HTML" class="ReportAction">
<result name="success" type="jasper">
<param name="location">
/jasper/report3.jasper
                </param>
<param name="dataSource">myList</param>
<param name="format">HTML</param>
</result>
</action>

<action name="XML" class="ReportAction">
<result name="success" type="jasper">
<param name="location">
/jasper/report3.jasper
                </param>
<param name="dataSource">myList</param>
<param name="format">XML</param>
</result>
</action>

<action name="CSV" class="ReportAction">
<result name="success" type="jasper">
<param name="location">
/jasper/report3.jasper
                </param>
<param name="dataSource">myList</param>
<param name="format">CSV</param>
</result>
</action>

<action name="XLS" class="ReportAction">
<result name="success" type="jasper">
<param name="location">
/jasper/report3.jasper
                </param>
<param name="dataSource">myList</param>
<param name="format">XLS</param>
</result>
</action>

</package>
</struts>


jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Struts2+ JasperReports 使用示例</title>
<%@ include file="/common/meta.jsp"%>
</head>
<body>
        <a href="${ctx}/rep/HTML.action">HTML</a>
        <br>
        <a href="${ctx}/rep/PDF.action">PDF</a>
        <br>
        <a href="${ctx}/rep/XML.action">XML</a>
        <br>
        <a href="${ctx}/rep/CSV.action">CSV</a>
        <br>
        <a href="${ctx}/rep/XLS.action">XLS</a>
    </body>
</html>




我现在不太清楚这个流程,点级pdf时候就出错了


八月 16, 2014 11:02:50 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NoSuchMethodError: net.sf.jasperreports.engine.util.JRLoader.loadObject(Ljava/lang/String;)Ljava/lang/Object;
at org.apache.struts2.views.jasperreports.JasperReportsResult.doExecute(JasperReportsResult.java:324)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
at org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.kingree.plan.webapp.filter.AuthCheckFilter.doFilter(AuthCheckFilter.java:160)

9 个解决方案

#1


没有这个方法,看看是不是你的包导入错误了

#2


servlet抛出的异常,回调方法出错,仔细检查检查,是不是少东西,还是,写错了。

#3


以前遇到過,好像是包少了還是衝突了。。。

#4


引用 3 楼 meng_taiqian 的回复:
以前遇到過,好像是包少了還是衝突了。。。

我已经解决了 我用的是5.6.0的jar包,然后他不支持传递地址了,只支持文件,换成5.2.0的jar包就不会报错了

#5


我已经解决了 我用的是5.6.0的jar包,然后他不支持传递地址了,只支持文件,换成5.2.0的jar包就不会报错了

强悍啊;我找了好久;才看到这个方法。确实解决问了。

#6


我也出现了类似的问题,之前我的版本是5.6的,后来换成4.6的jar包,还是报同样的错误。
换成5.2.0真的能搞定么?

#7


该回复于2015-02-05 17:36:29被管理员删除

#8


感谢#4的XiZhuXi,我换成5.2的包之后解决了。

#9


我换成5.2的包没问题了,但是谁知道用5.6的包应该如何打开PDF?

#1


没有这个方法,看看是不是你的包导入错误了

#2


servlet抛出的异常,回调方法出错,仔细检查检查,是不是少东西,还是,写错了。

#3


以前遇到過,好像是包少了還是衝突了。。。

#4


引用 3 楼 meng_taiqian 的回复:
以前遇到過,好像是包少了還是衝突了。。。

我已经解决了 我用的是5.6.0的jar包,然后他不支持传递地址了,只支持文件,换成5.2.0的jar包就不会报错了

#5


我已经解决了 我用的是5.6.0的jar包,然后他不支持传递地址了,只支持文件,换成5.2.0的jar包就不会报错了

强悍啊;我找了好久;才看到这个方法。确实解决问了。

#6


我也出现了类似的问题,之前我的版本是5.6的,后来换成4.6的jar包,还是报同样的错误。
换成5.2.0真的能搞定么?

#7


该回复于2015-02-05 17:36:29被管理员删除

#8


感谢#4的XiZhuXi,我换成5.2的包之后解决了。

#9


我换成5.2的包没问题了,但是谁知道用5.6的包应该如何打开PDF?