2016-09-22 5 views
2

私はこのチュートリアルを次のようだ: http://javabeansinjasper.blogspot.com/javabeansデータソースがエラーを返すのはなぜですか?

iReportは上のJavaBeansデータソースをテストするとき、私は困難に遭遇しています。私はmvnパッケージを使って自分のアプリケーション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

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ではないこと(実際にはブログでご提供していることを確認する必要がありますが彼らはベクトルを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と同じ名前とクラスを指定します。 –

関連する問題