2

我被指派为使用 BIRT 报告的客户清理项目。我已经解决了大部分问题,但我仍然有一份报告无法正常工作并返回错误。错误是:

Row (id = 1467): 
+ There are errors evaluating script "var fileName = row["Attached_File"];
params["HyperlinkParameter"].value = ImageDecoder.decodeDocs(row["Ecrash_Attach"],fileName);":
Wrapped java.lang.NullPointerException (/report/body/table[@id="61"]/detail/row[@id="70"]/cell[@id="71"]/grid[@id="1460"]/row[@id="1462"]/cell[@id="1463"]/table[@id="1464"]/detail/row[@id="1467"]/method[@name="onCreate"]#2)

如果有人想要,我可以发布完整的堆栈跟踪,但现在我将省略它,因为它很长。

这是 decodeDocs 方法的来源:

public static String decodeDocs(byte[] source, String fileName) {
        String randName = "";
        byte[] docSource = null;
        if ( Base64.isArrayByteBase64(source) ){
            docSource = Base64.decodeBase64(source);
        }
        documentZipPath = writeByteStreamToFile(source);
        randName = writeByteStreamToFile(docSource, fileName);
        return randName;
    }

我对这个很迷茫。该错误似乎告诉我脚本的第二行有一个错误,即:

var fileName = row["Attached_File"];
params["HyperlinkParameter"].value = ImageDecoder.decodeDocs(row["Ecrash_Attach"],fileName);

这是在报表的 OnCreate 方法中编写的。任何帮助,甚至线索都将不胜感激。如果您想查看报告,请询问,我会为它发布 xml。

4

1 回答 1

0

我在 BIRT 中犯的一个常见错误是访问空报告参数的值。在您的情况下,可以params["HyperlinkParameter"]为空吗?

于 2013-05-01T16:25:02.980 回答