После обновления Eclipse я не могу генерировать отчеты в JasperStudio - PullRequest
1 голос
/ 28 января 2020

У меня маленькая проблема. В предыдущей версии Eclipse (2019-06) я создавал много отчетов с помощью JasperSoft (плагин в eclipse). Вчера я обновился до новой версии (большая ошибка?), И я не могу создавать отчеты. Я делаю все как всегда, и это мой результат:

Exception in thread "main" java.lang.NullPointerException
at net.sf.jasperreports.components.table.fill.TableReport.createCell(TableReport.java:1600)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.createColumnCell(TableReport.java:497)
at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.createColumnCell(TableReport.java:709)
at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.createColumnCell(TableReport.java:686)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:476)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:442)
at net.sf.jasperreports.components.table.StandardColumn.visitColumn(StandardColumn.java:74)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visit(TableReport.java:555)
at net.sf.jasperreports.components.table.fill.TableReport.createColumnHeader(TableReport.java:1112)
at net.sf.jasperreports.components.table.fill.TableReport.<init>(TableReport.java:300)
at net.sf.jasperreports.components.table.fill.FillTable.createFillTableSubreportFactory(FillTable.java:335)
at net.sf.jasperreports.components.table.fill.FillTable.createFillSubreport(FillTable.java:309)
at net.sf.jasperreports.components.table.fill.FillTable.evaluate(FillTable.java:131)
at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:110)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:500)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2022)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:748)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:121)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:583)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:929)
at com.baeldung.jasperreports.Main.main(Main.java:242)

Это мой код (более короткая версия):

String outputFile = File.separatorChar + "D:\\eclipse\\JasperTableExample2.pdf";

Collection<Person> osoba = new ArrayList<Person>();

Person john = new Person();
john.setName("John");
john.setSurname("Doe");
john.setEmail("john@gmail.com");
john.setAge(22);
john.setX(5);
john.setY(5);
john.setZ(1);
john.setDateTime(LocalDateTime.of(2019,12,12,9,25));
osoba.add(john);

JRBeanCollectionDataSource personJRBean = new JRBeanCollectionDataSource(osoba);
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("ItemDataSource", personJRBean);
JasperPrint jasperPrint = JasperFillManager.fillReport("D://path//NewReport.jasper", parameters, new JREmptyDataSource()); // this is #242 line at Main.java
OutputStream outputStream = new FileOutputStream(new File(outputFile));
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);

Я не помещаю здесь класс Person. Java код работает хорошо.

В JasperStudio я создаю новый отчет, новый параметр (имя, как в коде - ItemDataSource, установите класс net.sf.jasperreports.engine.data.JRBeanCollectionDataSource). Затем я создаю таблицу с новым набором данных и выбираю это:

enter image description here

Затем я просто запустил Main и отчет был сгенерирован.

До обновления этот процесс работал отлично, но после "шага обновления" я получаю эту ошибку.

1 Ответ

0 голосов
/ 20 февраля 2020

У меня была точно такая же проблема с той же трассировкой стека. Речь шла не о затмении, а о версии Jaspersoft Studio.

Я использовал Jaspersoft Studio 6.11.0 в Eclipse и версию 6.4.3 файла jasperreports.jar во время выполнения. Мне пришлось обновить pom. xml (я использую maven) до версии 6.11.0, и это исправило ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...