我遵循本教程: http://javabeansinjasper.blogspot.com/
我在iReport上测试java bean数据源时遇到了困难。我已经通过mvn包打包我的app jar并将其添加到iReport类路径上。
我的工厂类看起来像这样:
public class JasperReportFactory {
private static Vector proposalReports;
public static void setProposalReports(ProposalReport report) {
proposalReports = new Vector();
proposalReports.add(report);
}
public static Collection getProposalReports() {
return proposalReports;
}
}
但我收到以下错误:
该方法不会返回有效的数组或java.util.Collection!
任何想法都将不胜感激。!
答案 0 :(得分:1)
您的JasperReportFactory.getProposalReports()
正在返回null
iReport调用JasperReportFactory.getProposalReports()
,但没有先调用public static void setProposalReports(ProposalReport report)
您需要确保private static Vector proposalReports;
不是null
(事实上,在您提供的博客中,他们正在getStudentList()
创建向量
示例强>
public static Collection getProposalReports() {
if (proposalReports==null){
setProposalReports(new ProposalReport()) //mockup for iReport
}
return proposalReports;
}
在发布Vector
是旧java 1.4时,您应该考虑将List
与类型定义一起使用。
private static List<ProposalReport> proposalReports;
请参阅Why is Java Vector class considered obsolete or deprecated?