2009-08-05 6 views
0

J'essaye d'écrire une extension (plug-in) pour les rapports Eclipse BIRT. Il s'agit d'extraire des images d'un fichier en fonction des entrées de la base de données et de les afficher. J'utilise JAI-ImageIO de Sun pour accéder aux données de fichier TIFF et les convertir en PNG pour les afficher dans le rapport. Mon code est conforme, mais renvoie une exception d'exécution noClassDefFound:Comment puis-je utiliser JAI-ImageIO de Sun avec un plugin Eclipse BIRT?

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) 
... 

J'utilise la méthode PlanarImage.getAsBufferedImage(), il devrait donc se convertir à un objet image plus standard. J'ai placé les fichiers jar JAI dans mon JRE et testé le même code de base en dehors de l'environnement du plugin Eclipse - cela fonctionne bien. Il semble être un problème CLASSPATH, mais j'ai vérifié que tous les JRE sur mon système contiennent les fichiers jar et DLL nécessaires dans les endroits appropriés. Pour un nouveau pilote JDBC, vous devez placer le (s) pot (s) dans un sous-répertoire spécial de plugins. Y a-t-il un endroit spécial pour placer d'autres jar tiers afin que BIRT puisse les utiliser?

+0

Cela fonctionne pour un environnement en dehors du développement du plug-in Eclipse avec l'environnement OSGi. Je travaille à partir du code d'exemple standard d'un RotatedLabel ReportItem, mais modifié pour mettre en œuvre ce que je vise. Le message "supprimer les avertissements" que j'ai commenté hier était faux - juste un problème de chemin de classe qui a résolu en réorganisant les importations pour le projet Eclipse. : - | La même erreur persiste cependant, avec une exception JDBC étrange: "Impossible de fermer le jeu de résultats." – sventechie

Répondre

2

Ceci a été résolu en Eclipse extension for opening TIFF type 4 images. Fondamentalement, vous avez juste besoin de créer un sous-répertoire et de placer tous les fichiers JAR et DLL, ajouter les fichiers jars à votre classpath et ajouter les DLL aux "dépendances de plugin" sous "bibliothèques natives requises".

Questions connexes