java - 将图像参数从 GWT/GXT 传递到 Jasper 报告的问题

标签 java image gwt jasper-reports gxt

我正在尝试将一个简单的 .gif 图像从我的 GXT 应用程序提供给 jasper,以便它生成一个 Excel 报告。

我遇到的问题是,在尝试了多种选择之后,我总是在服务器端得到“java.lang.NullPointerException”。

我的 Jasper 报告中有以下代码:

    <parameter name="logo" class="java.lang.String"/>
...
        <image>
             <reportElement uuid="2f9765a4-f1dc-4af4-9ddf-fae1c7a3d152" x="110" y="0" width="206" height="40"/>
             <imageExpression><![CDATA[$P{logo}]]></imageExpression>
        </image>

Java 代码:

 FileResolver fileResolver = new FileResolver() {

                 @Override
                 public File resolveFile(String fileName) {
                    URI uri;
                    try {
                      uri = new URI(this.getClass().getResource(fileName).getPath());
                      return new File(uri.getPath());
                    } catch (URISyntaxException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                      return null;
                    }
                }
            };

            parameters.put("logo",  fileResolver.resolveFile("logo.GIF"));

我已经尝试了几种解决方案,但都遇到了问题。

logo.gif 放在编译后的 GWT 应用程序的 .war 文件夹中,其内容被归档为 .war 并部署在 Tomcat 7.0 服务器上。

希望有更多经验的人能帮助我,让我知道我做错了什么。

最佳答案

FileResolver 对象应该像这样传递给 Jasper:

parameters.put("REPORT_FILE_RESOLVER", fileResolver);

您不应该自己调用 fileResolver.resolveFile()FileResolver 方法的调用将由 JasperReports 自己完成。 This question看起来很像你的(也许你已经看到了)并且它通过将 FileResolver 作为参数传递来工作。

您可以在 FileResolver 上找到更多信息 here . This page mentions that FileResolver is deprecated as of JasperReports 5.0.1.如果您正在使用(或计划使用)5.0.1+,您应该尝试使用 JasperResportsContext . JasperReportsContext的使用示例可以引用this question .

关于java - 将图像参数从 GWT/GXT 传递到 Jasper 报告的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15497583/

相关文章:

java - 有没有办法使用 GWT.create(...) 实例化泛型类型的类?

java - 遍历具有不同长度延迟的文本

java - 文件处理

android - 从 SD 卡加载图像时的 gridview 和 setImageBitmap

java - 无法使用存储在数据库中的路径显示图像

java - 意外异常 : java. lang.NoClassDefFoundError: org/apache/log4j/LogManager

java - GWT:将复合小部件添加到 RootPanel 时执行停止

java - 使用 JMX 连接访问 GridKernalMBean

java - Apache Solr 可以输出 HTML 而不是 XML 吗?

java - 如何将图像转换为字符串以将其读/写到 SQLite 数据库 - Android Studio (Java)