2016-09-22 55 views
2

我下面這個教程: http://javabeansinjasper.blogspot.com/爲什麼javabeans數據源返回錯誤?

測試上的iReport的Java bean的數據源,當我遇到困難。我通過mvn包打包了我的應用程序jar,並將它添加到iReport classpath中。

我的工廠類看起來是這樣的:

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

The method don't return a valid Array or java.util.Collection!

任何想法可以理解的!

回答

1

JasperReportFactory.getProposalReports()正在恢復null

iReport的要求JasperReportFactory.getProposalReports()但沒有先調用public static void setProposalReports(ProposalReport report)

解決方法:

你需要確保你的private static Vector proposalReports;null(其實在博客你提供他們正在創建Vector中的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?

+0

感謝您對本,爲什麼域將不會在iReport的填充即使連接數據源現在是成功的任何想法?我期待我現在可以拖放字段,但他們沒有。 – lorraine

+0

@ yin03如果您沒有自動獲取字段(回放字段),請手動創建它們(右鍵單擊字段節點,添加字段),給出與您的bean相同的名稱和類。 –