为什么javabeans数据源返回错误?

时间:2016-09-22 01:21:33

标签: jasper-reports javabeans ireport

我遵循本教程: 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;
    }
}

但我收到以下错误:

enter image description here

  

该方法不会返回有效的数组或java.util.Collection!

任何想法都将不胜感激。!

1 个答案:

答案 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?