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

API standards et tierces Java Discussion :

Problème de gestion d'eMail avec ClassNotFoundException: javax.activation


Sujet :

API standards et tierces Java

  1. #1
    Membre expérimenté
    Problème de gestion d'eMail avec ClassNotFoundException: javax.activation
    Bonjour,

    depuis que je viens de passer à JAVA version > 8, j'ai cette exception qui est levée:
    java.lang.ClassNotFoundException: javax.activation.DataHandler

    lorsque l'instruction est exécutée:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Message mimeMessage = new MimeMessage( Session.getInstance( propSessionCourriel, smtpAuthentifiant ));

    Ce code a fonctionné pendant des années jusqu'à ce que je décide de monter en version JAVA.

    J'utilise AdoptOpenJDK version 11 ( mais le problème est le même si j'utilise le JDK d'Oracle )
    et pour le traitement de la partie 'Mail', j'utilise javax-mail.1.6.2 disponible ici.


    Il est clair que je ne suis pas le seul a être victime de ce problème.
    Cependant je ne comprends la solution qui est souvent indiquée dans les posts, à savoir:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <dependencies>
                <dependency>
                    <groupId>com.sun.mail</groupId>
                    <artifactId>javax.mail</artifactId>
                    <version>1.6.2</version>
                </dependency>
            </dependencies>


    Cela consiste en quoi ? Et comment faire cela dans un projet construit à travers Eclipse ?

    Merci & @ bientôt...
    @ bientôt...

    Salut & @+ sur 3W!

  2. #2
    Modérateur

    Salut,

    javax.activation a été retiré du JDK à partir de JavaSE 11. Il est toujours présent en Java 9, mais il faut ajouter explicitement le module (--add-modules java.activation). A partir de Java 11, il suffit de télécharger la bibliothèque à part comme n'importe quelle bibliothèque et de l'ajouter au classpath (comme c'était le cas d'ailleurs pendant longtemps, je ne sais plus exactement, au moins jusqu'à JavaSE 6). L'extrait de xml que tu montres, c'est un fichier de paramétrage de Maven (POM), un gestionnaire de dépendances entre autres (qui fait qu'au lieu de mettre en dur la bibliothèque dans le classpath et de compiler/builder le programme directement dans l'EDI ou en console, tu vas utiliser Maven qui utilisera les POM pour télécharger automatiquement les bonnes bibliothèques (les fichiers, en fonction des versions, ainsi que les fichiers des autres bibliothèques nécessaires pour celles que tu veux utiliser). Tu ne seras plus dépendant d'un fichier jar, mais d'une version de bibliothèque (ou plusieurs). De même, si tu fais une API, celui qui l'utilisera, n'auras pas à télécharger tous les fichiers (ni même à savoir quels tu utilises), il ajoutera un pom à son projet, et hop, ça chargera tout ce qu'il faut automatiquement.

    A noter que javax.activation (activation.jar), c'est maintenant géré à part dans un projet open source appelé Jakarta Activation.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre expérimenté
    Merci Joel,

    1 seule réponse est le problème est résolu !
    Quelle efficacité sur ce forum
    @ bientôt...

    Salut & @+ sur 3W!

###raw>template_hook.ano_emploi###