IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

[iText] Intégration d'iText


Sujet :

Eclipse Platform

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 182
    Points : 59
    Points
    59
    Par défaut [iText] Intégration d'iText
    Salut à tous,

    J'essaye actuellement d'importer des librairies dans mon projet sous Eclipse Helios. En l’occurrence, il s'agit des librairies iText (http://sourceforge.net/projects/itex...xt/iText5.3.2/)
    Donc je les ai copié dans mon répertoire (Lib) puis j'ai ajouter les Jars avec le Java Build path.

    J'ai l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    java.lang.NoClassDefFoundError: com/itextpdf/text/DocumentException
        at fr.eldoon.gui.editors.eldoonEditor.createPartControl(eldoonEditor.java:357)
        at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670)
        at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
        at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
        at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
        at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
        at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
        at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
        at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
        at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1254)
        at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1207)
        at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1606)
        at org.eclipse.ui.internal.PartStack.add(PartStack.java:497)
        at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103)
        at org.eclipse.ui.internal.PartStack.add(PartStack.java:483)
        at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112)
        at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63)
        at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225)
        at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:213)
        at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:778)
        at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:677)
        at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:638)
        at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2860)
        at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2768)
        at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2760)
        at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2711)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2707)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2691)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2674)
        at fr.eldoon.gui.commands.CmdHdlOpen.execute(CmdHdlOpen.java:61)
        at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
        at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
        at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
        at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
        at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
        at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820)
        at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806)
        at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at fr.eldoon.gui.Application.start(Application.java:20)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
    Caused by: java.lang.ClassNotFoundException: com.itextpdf.text.DocumentException
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        ... 64 more
    Aprés recherche, il semblerait que l'erreur vienne du fait que la librairie ne soit pas implémentée au projet. Sur internet, ils disent, qu'en plus de ce que j'ai fait, il faut cocher les librairies dans "Java EE Modules dependencies" mais il n'y en a pas sous Helios.

    J'ai mis en fichier attaché une vue de mon Eclipse, avec le Java Build Path, les librairies qui apparaissent dans le projet à gauche, et le bout de code qui faire une erreur.

    Quelqu'un saurait-il m'indiquer quoi faire ?

    Merci d'avance.
    Images attachées Images attachées  

  2. #2
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 182
    Points : 59
    Points
    59
    Par défaut
    En fait, il ne faut rien faire de plus, à ce que j'ai compris, pour ajouter une librairie.

    En fait, il trouve toutes les classes de la librairie dont j'ai besoin, sauf celle-ci; "com/itextpdf/text/DocumentException". Quand je vais voir le JAR correspondant, il y a pourtant la classe DocumentException à l'intérieur, en l'ouvrant avec Winrar.

    Je ne comprends vraiment pas d’où vient le problème.

    J'ai essayé plusieurs versions d'iText et la même erreur revient toujours... J'ai aussi essayé sur plusieurs de mes fichiers. Donc le problème doit bien venir de mon projet en lui-même...
    Une idée de ce que ça pourrait être ?

  3. #3
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bonjour,

    Le message dit effectivement que la lib est absente du ClassPath, donc à l'exécution.

    Normalement, quand on référence les libs dans le BuildPath, celles-ci sont ensuite répercutées automatiquement dans le ClassPath, donc dans ton cas, ça devrait fonctionner puisque le fichier itextpdf-5.3.2.jar y est bien présent.

    Je pense qu'il y a peut-être un conflit dans ton BuildPath, ce ne serait peut-être pas le bon JAR qui est chargé en premier... Je vois qu'il y a plusieurs JAR qui n'ont rien à faire dans le BuildPath. Tout ce qui est javadoc et sources peut être supprimé de celui-ci car ça n'est utile que pour le développement et nul besoin de les référencer à cet endroit.

    Supprime également le itext-pdfa-5.3.2.jar qui à mon avis est une tentative de ta part.

    Une fois que c'est nettoyé, vérifie si c'est en ordre au niveau de la configuration d'exécution, dans l'onglet Classpath, puisque c'est lui qui fait foi pour l'exécution.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 182
    Points : 59
    Points
    59
    Par défaut
    Merci pour ta réponse.

    J'ai pris une autre version du iText, ou il n'y avait qu'un seul fichier, pour éviter les conflits. (http://sourceforge.net/projects/itex...xt/iText5.0.0/)

    J'ai supprimé tout ce que j'avais fait sur les anciens, et j'ai rajouté le nouveau dans le Build Pass.

    Cela fait la meme erreur.

    Je ne trouve pas l'onglet Classpath, ou est-il?

  5. #5
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 182
    Points : 59
    Points
    59
    Par défaut
    Je pense qu'on s'en rapproche mais en fait le problème est un peu différent, puisqu'en fait je travaille sur un exécutable de type "product", et il n'y a pas de classpath dans cette catégorie.

    D'autre part, j'ai essayé de créer un stand alone avec le iText et bonne chose, j'ai des erreurs sur tous les imports de iText. C'est donc bien un problème global d'importation du iText et non un problème avec la classe DocumentException.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ----------
    65. ERROR in D:\Workspace\eldoonProject\java_svn\eldoonEclipseProject\src\fr\eldoon\gui\jung\JungEdPanel.java (at line 28)
        import com.itextpdf.text.Document;
               ^^^^^^^^^^^^
    The import com.itextpdf cannot be resolved
    ----------
    66. ERROR in D:\Workspace\eldoonProject\java_svn\eldoonEclipseProject\src\fr\eldoon\gui\jung\JungEdPanel.java (at line 29)
        import com.itextpdf.text.DocumentException;
               ^^^^^^^^^^^^
    The import com.itextpdf cannot be resolved
    ----------
    67. ERROR in D:\Workspace\eldoonProject\java_svn\eldoonEclipseProject\src\fr\eldoon\gui\jung\JungEdPanel.java (at line 30)
        import com.itextpdf.text.PageSize;
               ^^^^^^^^^^^^
    The import com.itextpdf cannot be resolved
    ----------
    68. ERROR in D:\Workspace\eldoonProject\java_svn\eldoonEclipseProject\src\fr\eldoon\gui\jung\JungEdPanel.java (at line 31)
        import com.itextpdf.text.pdf.PdfWriter;
               ^^^^^^^^^^^^
    The import com.itextpdf cannot be resolved
    ----------
    En fait, faut-il faire quelque chose en plus du Build Path lorsqu'on veut importer une librairie sur un projet de type "product"?

  7. #7
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Citation Envoyé par Ma29200 Voir le message
    je travaille sur un exécutable de type "product"
    Ceci est tout de même une information capitale qui l'aurait fallu indiquer dès le départ...
    Effectivement, quand on regarde plus attentivement ton screenshot, il y a de quoi avoir la puce à l'oreille mais il faut avoir l’œil quand même...

    Quoi qu'il en soit, le problème ne se traite pas de la même manière. Le mieux est de "bundleliser" ton jar. Pas le temps de t'expliquer dans l'immédiat, je te laisse chercher ou sinon, quelqu'un d'autre pourra peut-être te répondre.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  8. #8
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Effectivement, tu travailles sur un Eclipse RCP (ou des plug-ins Eclipse au moins).
    Il s'agit juste du coup, soit d'utiliser un bundle itext (ce dont parle Laurent), soit d'inclure correctement ton JAR dans ton plug-in.
    Pour la première solution, tu as 3 solutions:
    • passer par un projet qui s'appelle Orbit (il faut rechercher com.lowagie.text dans le repository) et qui fournit des JARs déjà bundlelisé
    • passer par le repository spring source qui contient la même chose
    • soit bundleliser ton JAR toi même.
    Cette solution, mis à part le dernier cas, a la fâcheuse tendance à t'imposer des versions qui ne correspondent pas forcément à la version que tu souhaites utiliser...
    Mais du coup, pour l'utiliser, il te suffit de mettre ton JAR bundlelisé dans ton installation d'Eclipse puis de le relancer avec un -clean et tu ajoutes ton JAR bundlelisé comme n'importe quel plug-in.

    Pour la seconde, il te suffit d'aller sur ton MANIFEST.MF, dans l'onglet Runtime, tu as une partie Classpath dans laquelle il te faut ajouter ton JAR (en cliquant sur "Add..."). Il te faut ensuite t'assurer que ton JAR sera packagé dans ton bundle en allant dans l'onglet Build et en sélectionnant ton JAR.

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  9. #9
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 182
    Points : 59
    Points
    59
    Par défaut
    Tout d'abord, je ne savais pas que le fait que ca soit un "product" changerait quelque chose.

    J'ai choisi la deuxième solution, et ca marche!

    Merci à vous deux!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [iText] taille de iText.table
    Par david87 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 10/08/2011, 15h38
  2. [iText] Fusion de PDF
    Par seb55555 dans le forum Documents
    Réponses: 6
    Dernier message: 17/06/2010, 11h51
  3. [PDF]iText et Java
    Par chesteric31 dans le forum Documents
    Réponses: 5
    Dernier message: 03/05/2005, 14h25
  4. [iText] Rajouter une image dans un pdf
    Par COCOLOLO dans le forum Documents
    Réponses: 2
    Dernier message: 06/04/2005, 17h01
  5. [iText] Conseils sur la génération de pdf
    Par GreenJay dans le forum Documents
    Réponses: 6
    Dernier message: 25/03/2005, 01h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo