java - Jasper Reports 5.0.1 中的文件解析器

标签 java jasper-reports websphere deprecated resolver

在 5.0.1 中,REPORT_FILE_RESOLVER 被弃用,示例实现: http://jasperreports.sourceforge.net/sample.reference/tableofcontents/index.html#fileresolver

声明强烈建议切换到 JasperReportsContext。

我找不到 JasperReportsContext 用法的任何示例。据我所知,我应该寻找具有 FileResolver getter 和 setter 的 LocalJasperReportsContext。

我在问,必须如何完成?

最佳答案

浏览资源后我找到了解决方案。

JRXML imageExpression 标签:

<band height="79" splitType="Stretch">
<image scaleImage="FillFrame" isLazy="true" onErrorType="Blank">
    <reportElement uuid="3340bf0f-8471-45e9-8ea4-bdf44a7c0e68" x="0" y="0" width="150" height="69"/>
    <imageExpression class="java.io.File"><![CDATA["image.jpg"]]></imageExpression>
</image>

Java 代码片段:

FileResolver resolver = new FileResolver() {
@Override
public File resolveFile(String filename) {
    return new File("/some/path");
}
};


InputStream jasperfile = getClass().getClassLoader().getResourceAsStream("file.jasper");

LocalJasperReportsContext ctx = new LocalJasperReportsContext(DefaultJasperReportsContext.getInstance());
ctx.setClassLoader(getClass().getClassLoader());
ctx.setFileResolver(resolver);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);

JasperFillManager fillmgr = JasperFillManager.getInstance(ctx);
JasperExportManager exmgr = JasperExportManager.getInstance(ctx);

JasperPrint jasperPrint = fillmgr.fill(jasperReport, parameters, beanColDataSource);
ByteArrayOutputStream pdfBytes = new ByteArrayOutputStream();
exmgr.exportToPdfStream(jasperPrint, pdfBytes);

您必须创建一个新上下文并将其传递给 JasperFillManager 和 JasperExportManager。

关于java - Jasper Reports 5.0.1 中的文件解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15004325/

相关文章:

java - 一段时间后停止线程

java - 如何在WAS集群中的两台不同服务器上触发代码?

python - Jython-在函数调用语法中使用变量

java - WAS 6.1 显示 Java 版本 5,但实际上是 1.4

java - List<Integer> 作为 JRBeanCollectionDataSource 到子报表中,如何获取报表上显示的整数值?

java - 更改密码规范 - javax.net.ssl.SSLHandshakeException : Received fatal alert: handshake_failure

java - 如何在 Java 中创建包含 Javascript 代码的 JSONArray?

java - 多对多查询 查找所有含有 XX 成分的 "recipes"

java - 使用 JasperReports 呈现任意 XHTML

java - 碧 Jade 报告 : filling a report throws an exception "Class not found when loading object from file"