为什么 javabean 数据源返回错误?
Why is javabeans data source returning error?
我正在学习本教程:
http://javabeansinjasper.blogspot.com/
我在 iReport 上测试 java beans 数据源时遇到困难。我已经通过 mvn package 打包了我的应用程序 jar 并将其添加到 iReport classpath.
我的工厂 class 是这样的:
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;
}
}
但我收到以下错误:
The method don't return a valid Array or java.util.Collection!
任何想法将不胜感激!
您的 JasperReportFactory.getProposalReports()
正在返回 null
iReport 调用 JasperReportFactory.getProposalReports()
但没有先调用 public static void setProposalReports(ProposalReport report)
解决方案:
您需要确保您的 private static Vector proposalReports;
不是 null
(事实上在博客中您提供的是他们在 getStudentList()
中创建 Vector)
例子
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?
我正在学习本教程: http://javabeansinjasper.blogspot.com/
我在 iReport 上测试 java beans 数据源时遇到困难。我已经通过 mvn package 打包了我的应用程序 jar 并将其添加到 iReport classpath.
我的工厂 class 是这样的:
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;
}
}
但我收到以下错误:
The method don't return a valid Array or java.util.Collection!
任何想法将不胜感激!
您的 JasperReportFactory.getProposalReports()
正在返回 null
iReport 调用 JasperReportFactory.getProposalReports()
但没有先调用 public static void setProposalReports(ProposalReport report)
解决方案:
您需要确保您的 private static Vector proposalReports;
不是 null
(事实上在博客中您提供的是他们在 getStudentList()
中创建 Vector)
例子
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?