繁体   English   中英

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

[英]Issue passing a image parameter from GWT/GXT to a Jasper report

我正在尝试将一个简单的.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本身完成。 这个问题看起来很像你的(也许你已经看过了),它的工作原理是将FileResolver作为参数传递。

您可以在此处找到有关FileResolver更多信息。 此页面提到自JasperReports 5.0.1起不推荐使用FileResolver 如果您正在使用(或计划使用)5.0.1+,您应该尝试使用JasperResportsContext 有关JasperReportsContext的用法示例,您可以参考此问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM