2009-08-05 7 views
0

Eclipse BIRTレポート用の拡張機能(プラグイン)を作成しようとしています。データベースエントリに従ってファイルからイメージを抽出し、表示します。EclipseのBIRTプラグインでSunのJAI-ImageIOを使用するにはどうすればよいですか?

私は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 Plugin環境の外で同じ基本コードをテストしました。うまくいきます。 CLASSPATHの問題のようですが、システム上のすべてのJREに必要なJARファイルとDLLファイルが適切な場所に格納されていることを確認しました。

新しいJDBCドライバの場合は、プラグインの特別なサブディレクトリにjarファイルを置く必要があります。BIRTが使用できるように他のサードパーティ製のjarファイルを置く特別な場所はありますか?

+0

これは、OSGi環境でEclipseプラグイン開発外の環境で動作します。私は、RotatedLabel ReportItemの標準サンプルコードから作業していますが、私が目指しているものを実装するように変更しました。私が昨日コメントした "警告を抑止する"というメッセージは、偽のものでした。Eclipseプロジェクトのインポートを再注文して解決したクラスパスの問題です。 : - |しかし、同じエラーが、奇妙なJDBC例外と一緒に続きます。「結果セットを閉じることができません」 – sventechie

答えて

2

これは、Eclipse extension for opening TIFF type 4 imagesで解決されました。基本的には、サブディレクトリを作成してそこにすべてのJARとDLLを配置し、クラスパスにjarを追加し、DLLを「必要なネイティブライブラリ」の下の「プラグイン依存関係」に追加するだけです。

関連する問題