2009-08-05 72 views
0

我正在尝试为Eclipse BIRT报告编写扩展(插件)。它涉及根据数据库条目从文件中提取图像并显示它们。如何将Sun的JAI-ImageIO与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驱动程序,您必须将jar放在一个特殊的插件子目录中 - 是否有特殊的地方放置其他第三方jar让BIRT可以使用它们?

+0

这适用于使用OSGi环境的Eclipse插件开发之外的环境。我从RotatedLabel ReportItem的标准示例代码开始工作,但进行了修改以实现我的目标。我昨天评论的“压制警告”消息是假的 - 只是通过重新排序Eclipse项目的导入来解决的类路径问题。 : - |但是,同样的错误仍然存​​在,并伴随着一个奇怪的JDBC异常:“无法关闭结果集。” – sventechie 2009-08-07 15:25:51

回答

相关问题