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

API standards et tierces Java Discussion :

JavaMail exception NoClassDefFoundError


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 46
    Par défaut JavaMail exception NoClassDefFoundError
    Bonjour à tous,

    j'essaye d'introduire dans une application sur laquelle je travaille la possibilité d'envoyer un mail. Pour l'instant j'essaye un programme test que j'ai trouvé sur le web et que j'ai adapté.

    Voici le bout de code qui nous intéresse:

    --------------
    public static void send(String smtpServer, String to, String from
    , String subject, String body) {
    try {
    Properties props = System.getProperties();
    // -- Attaching to default Session, or we could start a new one --
    props.put("mail.smtp.host", smtpServer);
    Session session = Session.getDefaultInstance(props, null);
    // -- Create a new message --
    Message msg = new MimeMessage(session);
    msg.setText(body);
    // -- Set the FROM and TO fields --
    msg.setFrom(new InternetAddress(from));
    msg.setRecipients(Message.RecipientType.TO,
    InternetAddress.parse(to, false));
    try{
    //msg.setText(body);
    }catch(NoClassDefFoundError ex){
    ex.printStackTrace();
    }
    // -- Set some other header information --
    msg.setHeader("X-Mailer", "LOTONtechEmail");
    msg.setSentDate(new Date());
    // -- Send the message --
    Transport.send(msg);
    System.out.println("Message sent OK.");
    }
    catch (Exception ex) {
    System.out.println("ERREUR!");
    ex.printStackTrace();
    }
    }

    -------------

    j'ai systématiquement l'exception:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/geronimo/mail/util/ASCIIUtil

    à la ligne "msg.setText(body)". Je ne comprends pas pourquoi cette exception survient à cette endroit et pas avant, à "msg.setForm(...)" par exemple.

    En mettant l'instruction en commentaire, j'ai une autre exception:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/geronimo/mail/util/SessionUtil

    à la ligne Transport.send(msg).

    j'ai ajouté les jar's qu'ils faut, et mon serveur smtp marche (j'ai essayé avec telnet).
    Voici une liste des jars que j'ai:

    activation.jar
    dnsjava-2.0.3.jar
    dsn.jar
    imap.jar
    pop3.jar
    smtp.jar
    mail.jar
    mailapi.jar
    sendmail.jar

    Ceci dit je ne vois comment ça pourrait être un problème de jar's, vu que l'exception est jetée pour une méthose et pas pour une autre!

    J'utilise Intellij IDEA si jamais...

    Quelqu'un aurait une idée!? Merci!

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Ton probleme est clairement un probleme de jar.

    IL ne trouve pas la class qui est derriere ta methode.
    Par exemple, ta methode setText (msg.setText(body) doit se servir de la class org/apache/geronimo/mail/util/ASCIIUtil.

    Comme tu la met en commentaire ca ne plante plus car la methode n'appelle plus la class (logique étant donnée qu'elle est en commentaire).

    Malheureusuement pour toi, une autre methode fait appelle à une autre class que tu n'as pas en l'occurrence : org/apache/geronimo/mail/util/SessionUtil.

    Etant donnée que ces 2 classes sont dans le meme package il ne doit te manquer qu'un seul jar.

    Application web ou client? As tu mis t'es jar dans le classpath? (et non pas juste dans le buildpath)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 46
    Par défaut
    Salut,

    merci pour ta réponse.

    En fait effectivement je n'avais pas mis les jar's dans le classpath... (je n'ai jamais été très doué pour comprendre ces histoire, mais ça va finir par rentrer ). Maintenant c'est fait.

    Le problème... c'est que ça n'a pas résout le problème! Je me demande si je n'ai pas un jar qui manque à la base. J'ai entendu qu'il est possible que le code compile même s'il y a un jar qui manque, et l'erreur sera donc levée à l'exécution...

  4. #4
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    En général si ca compile c'est que tu a toutes les classes parce que sinon ca compile pas! Mais il y a des classes qui sont appelé au runtime et la il est possible qu'il te manque des classes/jars.

    DOnc si ca ne resout pas le pb, c'est qu'il te manque un jar. A toi de faire des recherche pour savoir de quel jar il s'agit en fonction du package parce que je ne connais pas tous les jars, lol!

    Mais etant donné le nom du package tu ferais mieux de regarder du coté de apache et notamment leur projet geronimo. (WWW.apache.org)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 46
    Par défaut
    Salut,

    finalement le problème est réglé, mais j'ai trouvé une autre librairie:

    com.jscape.inet

    ça marche sans problème!

    Merci en tout cas pour ton aide.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 02/02/2009, 00h54
  2. [Javamail] Exception incompréhensible
    Par GLDavid dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 24/07/2007, 18h01
  3. [JavaMail] exception lors d'envoi d'un mail
    Par sovop dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 12/01/2007, 11h51
  4. [JavaMail] Exception lors de l'envoi d'un email en nombre
    Par yousfi.z dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 19/12/2006, 13h51
  5. [Debutant]Exception NoClassDefFoundError dans main
    Par Mystnux dans le forum Langage
    Réponses: 4
    Dernier message: 17/06/2006, 12h24

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