2016-09-22 2 views
2

Я следую за этот учебник: http://javabeansinjasper.blogspot.com/Почему возникает ошибка источника данных javabeans?

Я сталкиваюсь с трудностями при тестировании источника Java Beans данных на иРепорт. Я упаковал свой контейнер приложений через mvn-пакет и добавил его в путь класса 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

иРепорт называет 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

спасибо за это, какие-либо идеи, почему поля не будут заселенные на иРепорт, даже если источник данных соединения теперь успешно? Я ожидаю, что теперь могу перетаскивать поля, но их нет. – lorraine

+0

@ yin03 Если вы не получаете поля автоматически (извлекаете поля), создайте их вручную (щелкните правой кнопкой мыши по узлам, добавьте поле), укажите имя и класс, как в вашем компоненте. –

Смежные вопросы