2009-08-05 2 views
0

Я пытаюсь написать расширение (плагин) для отчетов 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 мог их использовать?

+0

Это работает для среды разработки плагинов Eclipse с OSGi. Я работаю из стандартного примера кода RotatedLabel ReportItem, но модифицирован для реализации того, к чему я стремился. Сообщение «подавить предупреждения», которое я прокомментировал вчера, было фиктивным - это просто проблема с classpath, которая была решена путем переопределения импорта для проекта Eclipse. : - | Тем не менее, эта же ошибка сохраняется вместе со странным исключением JDBC: «Невозможно закрыть набор результатов». – sventechie

ответ

2

Это решение было разрешено в Eclipse extension for opening TIFF type 4 images. В основном вам просто нужно сделать подкаталог и поместить в него все JAR и DLL, добавить банки в свой путь к классам и добавить библиотеки DLL к «зависимостям плагина» в разделе «требуемые родные библиотеки».