Я пытаюсь написать расширение (плагин) для отчетов Eclipse BIRT. Это включает в себя извлечение изображений из файла в соответствии с записями базы данных и их отображение.Как использовать JAI-ImageIO от Sun с плагином Eclipse BIRT?
Я использую Sun JAI-ImageIO для доступа к файлам данных TIFF и преобразования в PNG для отображения в отчете. Мой код соответствует, но бросает исключение NoClassDefFound выполнения:
SEVERE: Error happened while running the report.
java.lang.NoClassDefFoundError: javax/media/jai/PlanarImage
at org.eclipse.birt.sample.reportitem.rotatedlabel.util.GraphicsUtil.createDocImage
(GraphicsUtil.java:66)
at org.eclipse.birt.sample.reportitem.rotatedlabel.RotatedLabelPresentationImpl.onRowSets
(RotatedLabelPresentationImpl.java:136)
at org.eclipse.birt.report.engine.extension.ReportItemPresentationBase.onRowSets
(ReportItemPresentationBase.java:218)
at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.
processExtendedContent(LocalizedContentVisitor.java:966)
...
Я использую метод PlanarImage.getAsBufferedImage(), поэтому он должен преобразовать в более стандартный объект изображения. Я поместил файлы JAI jar в свою JRE и протестировал один и тот же базовый код вне среды плагина Eclipse - это отлично работает. Кажется, это проблема CLASSPATH, но я проверил, что все JRE в моей системе содержат необходимые файлы jar и DLL в соответствующих местах.
Для нового драйвера JDBC вы должны поместить банку в специальную подкаталоги плагинов - есть ли место для размещения других сторонних банок, чтобы BIRT мог их использовать?
Это работает для среды разработки плагинов Eclipse с OSGi. Я работаю из стандартного примера кода RotatedLabel ReportItem, но модифицирован для реализации того, к чему я стремился. Сообщение «подавить предупреждения», которое я прокомментировал вчера, было фиктивным - это просто проблема с classpath, которая была решена путем переопределения импорта для проекта Eclipse. : - | Тем не менее, эта же ошибка сохраняется вместе со странным исключением JDBC: «Невозможно закрыть набор результатов». – sventechie