java使用jasperreport导出在tomact可以使用,但在websphere不行,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java使用jasperreport导出在tomact可以使用,但在websphere不行,相关的知识,希望对你有一定的参考价值。

E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: 应用程序 ASAIntranet2_war 中 servlet /PreviewReport.jsp 的某一服务方法创建了未捕获到的异常。创建的异常:com.ibm.websphere.servlet.error.ServletErrorReport: java.lang.AbstractMethodError: org/w3c/dom/Node.getTextContent()Ljava/lang/String;
java.lang.AbstractMethodError: org/w3c/dom/Node.getTextContent()Ljava/lang/String;

参考技术A 看来是.jar的版本不对应 。。。追问

JasperReports xlsx 导出错误 - 内容不可读 - 为啥?

【中文标题】JasperReports xlsx 导出错误 - 内容不可读 - 为啥?【英文标题】:JasperReports xlsx export error - Unreadable content - why?JasperReports xlsx 导出错误 - 内容不可读 - 为什么? 【发布时间】:2013-02-08 02:00:27 【问题描述】:

每当我的交叉表报告的结果超过 702 列(ZZ 列)时,就会从 Excel 收到“不可读的内容”错误。当少于此列数时 - 没有错误。有限制吗? XLSX 应该可以处理 16,000 多列。

我们正在使用 JasperReports v4.0.1 和 POI 3.6。我已经尝试并使用 JasperReports v4.7 和 POI 3.7 重新创建了同样的问题。

感谢任何帮助或见解。

导出代码:

JRXlsxExporter xlsExporter = new JRXlsxExporter();

File fileP = new File(_workdir + report_name + ".jrprint");
JasperPrint jasperPrint = (JasperPrint)
JRLoader.loadObject(fileP);

xlsExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE);

xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, _outputName);
System.out.println("Exporting Excel Report to " + _outputName);
xlsExporter.exportReport();
System.out.println("Export Complete.");

【问题讨论】:

您收到任何错误吗?结果文件真的生成了吗? 另外,您可能希望提高 Jasper 的日志级别,以查看 POI 或 Jasper 本身是否抛出任何错误。 报告生成或导出期间没有错误。仅在尝试打开 Excel 文件本身时。该文件已创建,但它给出了一个不可读的内容错误,并且其中几乎没有实际数据。 我应该添加我们正在将输出写入文件,然后将文件通过电子邮件发送给请求者。这没有显示在浏览器中。 马特,简化您要完成的工作。 (1) 首先在 iReport 中导出到 XLSX。 (2) 从 JasperReports 教程中获取一个简单的示例。 (3) 增加复杂性,直到获得空/损坏的 Excel 文件。 (4) 看看能不能改用CSV格式——大部分老板应该想到“电子表格”的时候却想到了“Excel”;对于不需要格式化的输出,CSV 通常优于 XSLX。 【参考方案1】:

试试这个,

JRXlsxExporter jrXlsxExporter=new JRXlsxExporter();
jrXlsxExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
jrXlsxExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "export.xlsx");
jrXlsxExporter.exportReport();

【讨论】:

以上是关于java使用jasperreport导出在tomact可以使用,但在websphere不行,的主要内容,如果未能解决你的问题,请参考以下文章

JasperReports - 导出到 Excel 时无法识别数值

jasperreports-server中的示例报表是怎么制作的

JasperReport使用

JasperReports 服务器:如何使用 url 将报告导出为 html 文件

JasperReport报表导出踩坑实录

求使用iReport+JasperReport制作报表时格式设置