【问题标题】:Java jasper report NullPointerExceptionJava jasper 报告 NullPointerException
【发布时间】:2014-06-05 12:12:57
【问题描述】:

我是 Java 新手,我遇到了这个我无法弄清楚的问题。我继承了这个项目,并且在我的一个 scriptlet 中有以下代码:

DefaultLogger.logMessage("DEBUG path: "+ reportFile.getPath());
DefaultLogger.logMessage("DEBUG parameters: "+ parameters);
DefaultLogger.logMessage("DEBUG jr: "+ jr);
bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, jr);

我得到以下结果(FootwearReportsServlet.doGet 中的第四行是第 287 行):

DEBUG path: C:\Development\JavaWorkspaces\Workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\RSLDevelopmentStandard\reports\templates\footwear\RslFootwearReport.jasper
DEBUG parameters: {class_list_subreport=net.sf.jasperreports.engine.JasperReport@b07af1, signature_path=images/logo_reports.jpg, submission_id=20070213154168780, test_results_subreport=net.sf.jasperreports.engine.JasperReport@5795ce, logo_path=images/logos_3.gif, report_connection_secondary=com.mysql.jdbc.JDBC4Connection@2c39d2, testing_packages_subreport=net.sf.jasperreports.engine.JasperReport@1883d5f, signature_path2=images/logo_reports.jpg, tpid_subreport=net.sf.jasperreports.engine.JasperReport@17531fd, first_page_subreport=net.sf.jasperreports.engine.JasperReport@12504e0}
DEBUG jr: net.sf.jasperreports.engine.data.JRMapCollectionDataSource@1630eb6
Apr 29, 2010 4:15:13 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet FootwearReportsServlet threw exception
java.lang.NullPointerException
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)
    at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:385)
    at com.rsl.reports.FootwearReportsServlet.doGet(FootwearReportsServlet.java:287)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

我不知道空引用在哪里。从调试行我可以看到每个参数都有一个值。它可能指的是其中一个图像的错误路径吗?有任何想法吗?由于某种原因,我的服务器无法在 Eclipse 中以调试模式启动,所以我无法弄清楚这一点。

【问题讨论】:

标签: java jasper-reports


【解决方案1】:

通过查看您收到错误的行:

jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)

在JRFiller源码中它对应

jasperPrint = filler.fill(parameters, dataSource);

fillernull 时,唯一可能导致此行中出现NullPointerException 的情况。此时不会检查null 的参数。

查看createFiller 的代码(第134 行),您可以很容易地看到该函数返回空指针的条件。所以我猜你不知何故忘记指定打印顺序(PRINT_ORDER_HORIZONTALPRINT_ORDER_VERTICAL)。

【讨论】:

  • 太棒了!我正在查看 API/文档以尝试找到一种设置打印顺序的方法...
  • 回答的原因是对的,但是我刚刚升级了Jasper版本,问题就解决了。
【解决方案2】:

我也遇到了同样的问题。

Roland Illig 是对的,缺少打印顺序。这可能是因为编译的报告文件缺少必填字段。

之后向打印订单字段添加值没有帮助,它只会在缺少另一个字段的下一个位置不断崩溃。

使用相同版本的编译器(例如 iReport)和您的运行时库。

【讨论】:

  • 我也遇到了同样的问题。刚刚注意到我使用了不同的版本来编译和运行。使它们相同解决了我的问题。谢谢!
【解决方案3】:

从您的所有系列和类别中删除订单。 它将删除此异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多