我被指派为使用 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。