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

Java Discussion :

[ERREUR] java.lang.NullPointerException - Non justifié car méthode non null, incompréhension.


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Octobre 2013
    Messages : 19
    Points : 9
    Points
    9
    Par défaut [ERREUR] java.lang.NullPointerException - Non justifié car méthode non null, incompréhension.
    Bonjour,
    Voilas quand j’exécute mon code une erreur apparaît :
    Exception in thread "main" java.lang.NullPointerException
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:295)
    at com.sdzee.javamail.Javamail.Javamailmethod(Javamail.java:48)
    at com.sdzee.javamail.Javamail.main(Javamail.java:15)
    J'en déduis donc qu'a la ligne 48 de ma classe Javamail, l'objet retourne une valeur null ou du moins qu'il y a un problème.
    Le code de la classe :
    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
     
     
     package com.sdzee.javamail;
     
    import java.util.Properties;
     
    import javax.mail.*;
    import javax.mail.internet.*;
     
    import com.sdzee.servlets.Mail;
     
    public class Javamail {
     
      public static void main (String[] args) throws Exception {
    	  new Javamail().Javamailmethod();
      }
    	  public void Javamailmethod (){
     
     
    		    String host = "mail-m2l.fr.nf";
    		    String from = "rch@mail-m2l.fr.nf";
     
    		    String to = "mondestinataire@gmail.com";
    		    String username = "unidentifiant";
    		    String password = "unmotdepasse";
     
    	    Properties props = new Properties();
     
    	    props.put("mail.smtp.port", "587");
    	    props.setProperty("mail.smtp.ssl.enable", "true");
    	    props.setProperty("mail.smtp.ssl.socketFactory.class",
    						"DummySSLSocketFactory");
    	    props.setProperty("mail.smtp.ssl.socketFactory.fallback", "false");
     
     
     
    	    Session session = Session.getInstance(props, null);
    	    session.setDebug(true);
     
    	    MimeMessage message = new MimeMessage(session);   
    	  try {
    	    message.setFrom(new InternetAddress(from));
    	    message.setSubject("Hello");
    	    message.setText("Hello World");
    	    Transport tr = session.getTransport("smtp");
    	    tr.connect(host, username, password);
    	    message.saveChanges();
    	    tr.sendMessage(message,message.getAllRecipients());
    	    tr.close();
    			message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    		} catch (AddressException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (MessagingException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
      }
    }
    Hors dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tr.sendMessage(message,message.getAllRecipients());
    je ne vois pas d'erreur, je lui indique bien de prendre en paramètre le texte et le sujet indiquer juste au dessus.

    Donc deux erreurs possibles :
    - Je ne comprend pas l'erreur que me renvoi la console et donc sa ne vient pas de la
    - J'ai fait une erreur dans mon code

    Dans les deux cas je n'arrive pas à résoudre cette erreur, si vous pouviez m'aidez je vous en serez grandement reconnaissant.

    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Alzok Voir le message
    Hors dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tr.sendMessage(message,message.getAllRecipients());
    je ne vois pas d'erreur, je lui indique bien de prendre en paramètre le texte et le sujet indiquer juste au dessus.
    Tiens ? C'est marrant dans cette ligne je vois deux paramètres, un qui indique le texte et le sujet, et un qui indique... Autre chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Octobre 2013
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Tout d'abord merci pour ta réponse.

    J'ai donc tenter de modifier cette partie du code de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tr.sendMessage(message, null);
    (seul façons de faire sans modifier le Mimemessage) mais encore une fois j'obtient la même erreur (en plus longue) :

    Grave: "Servlet.service()" pour la servlet Mail a généré une exception
    java.lang.NullPointerException
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:295)
    at com.sdzee.javamail.Javamail.Javamailmethod(Javamail.java:48)
    at com.sdzee.servlets.Mail.doPost(Mail.java:40)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Une idée du problème ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je pense pas qu'il aurait fallu modifier cette ligne.
    Je pense qu'il aurait fallu se demander si message.getAllRecipients() va marcher correctement. En se rappelant que le message d'erreur se plaint que quelque chose est null.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Alzok Voir le message
    Bonjour,
    Tout d'abord merci pour ta réponse.

    J'ai donc tenter de modifier cette partie du code de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tr.sendMessage(message, null);
    Ouais, donc le truc se plaint de choper un null, et ta première réaction pour résoudre le problème, c'est de lui filer un null de plus
    Cette méthode attends la liste des destinataires de ton email. Sans destinataires, il n'est point possible d'envoyer l'email.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Octobre 2013
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    C'est vrais que ce n'est pas très logique.

    Du coup plus haut je lui définit bien un destinataire avec la variable "to", comment faire pour qu'il le prenne correctement en paramètre ?

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Alzok Voir le message
    Du coup plus haut je lui définit bien un destinataire avec la variable "to", comment faire pour qu'il le prenne correctement en paramètre ?
    Regarde ton code, regarde à quel moment tu envoie le messag et à quel moment tu définis les destinataires. Il n'y a rien qui te choque?

Discussions similaires

  1. Erreur java.lang.NullPointerException non comprise
    Par Marty_and_Doc dans le forum Débuter
    Réponses: 1
    Dernier message: 07/03/2015, 16h25
  2. Erreur java. lang.NullPointerException
    Par hicham.gi dans le forum Struts 1
    Réponses: 17
    Dernier message: 03/06/2009, 11h11
  3. Réponses: 32
    Dernier message: 20/04/2007, 21h56
  4. [Débutant] Erreur java.lang.NullPointerException
    Par Kevin12 dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/02/2007, 15h48
  5. Probleme erreur java.lang.NullPointerException
    Par Tsukaasa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2006, 18h19

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