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 :

Exception NullPointerException


Sujet :

Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut Exception NullPointerException
    Bonjour,

    Dans mon programme, j'ai l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Exception in thread "Timer-0" java.lang.NullPointerException
    	at Collecte.Monitoring.executeCmd(Monitoring.java:49)
    	at Collecte.Monitoring.Monitoring(Monitoring.java:34)
    	at Collecte.Collecte.run(Collecte.java:36)
    	at java.util.TimerThread.mainLoop(Timer.java:555)
    	at java.util.TimerThread.run(Timer.java:505)
    Cette exception renvoie au code dans 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
    62
    63
    64
     
    public class Monitoring{
      public void Monitoring (){
        try{
          JSch jsch=new JSch(); 
     
          String host=null;
     
           // connexion ssh avec le nom d'utilisateur et l'@ 
            host=JOptionPane.showInputDialog("Enter username@hostname",
                                             System.getProperty("user.name")+
                                             "@localhost"); 
          String user=host.substring(0, host.indexOf('@'));
          host=host.substring(host.indexOf('@')+1);
     
          Session sessionssh=jsch.getSession(user, host, 22);
     
     
     
          // Nom utilisateur + mote de passe
          UserInfo ui=new MyUserInfo();
          sessionssh.setUserInfo(ui); // récupération des informations utilisateur de la session 
          sessionssh.connect();
          // exécution des différentes coammandes
          executeCmd("fichierCPU.txt", "sar -uq 1 5 | grep \"Average\" | tr -s \" \"",sessionssh);
          executeCmd("fichierMem.txt", "vmstat 1 1",sessionssh);
          executeCmd("fichierIO.txt", "iostat -xcnCXTdz",sessionssh);
          executeCmd("fichierNet.txt", "netstat -i",sessionssh);
          sessionssh.disconnect(); // deconnexion de la session ssh
        }
        catch(JSchException | IOException e){
          System.out.println(e);
        }
      }
      private void executeCmd(String urlFich, String cmd, Session sessionssh) throws JSchException, FileNotFoundException, IOException{
     
          Channel channelssh = sessionssh.openChannel("exec");
          ((ChannelExec)channelssh).setCommand(cmd);
     
            channelssh.setInputStream(null);
            try (FileOutputStream fos = new FileOutputStream(new File(urlFich))) {
                ((ChannelExec)channelssh).setErrStream(System.err);
     
                InputStream in=channelssh.getInputStream();
     
                channelssh.connect();
     
                byte[] tmp=new byte[1024];
                while(true){
                  while(in.available()>0){
                    int i=in.read(tmp, 0, 1024);
                    if(i<0)break;
                    fos.write(((new String(tmp, 0, i)).getBytes()));
                    System.out.print(new String(tmp, 0, i));
                  }
                  if(channelssh.isClosed()){
                    System.out.println("exit-status: "+channelssh.getExitStatus());
                    break;
                  }
                  try{Thread.sleep(1000);}catch(Exception ee){}
                }
                channelssh.disconnect();
            }
        }
    Cette erreur revoie à la ligne : ((ChannelExec)channelssh).setCommand(cmd);
    Mais le problème est que cette classe marche normalement au niveau d'un autre projet où elle est utilisé directement.
    Je n'arrive pas à comprendre le problème et à le situer, si quelqu’un pouvait m'aider, car je bloque depuis de jours sur ça.

    Merci.

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bonjour,
    après la ligne Channel channelssh = sessionssh.openChannel("exec"); tu ajoutes un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (channelssh == null) throw new NullPointerException("La session ssh ne peut être null ...");
    et dans ce cas, tu dois vérifier ailleurs ...
    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Par défaut
    Bonjour,

    Pour l'exception générée, j'ai réussi à l'éviter en créant un nouveau projet, et mettre le projet a coté des packages gérant le connexion ssh. Don je ne sais pas encore quel était le problème, mais l'essentiel est que ça marche maintenant.

    Pour te répondre Paissad, le problème était ai niveau de channelssh qui était NULL.

    Donc merci pour votre aide.

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

Discussions similaires

  1. JSF, l'exception NullPointerException
    Par sophiaa dans le forum JSF
    Réponses: 6
    Dernier message: 11/06/2015, 14h20
  2. Exception : NullPointerException
    Par narutoe dans le forum Java EE
    Réponses: 0
    Dernier message: 24/04/2013, 12h51
  3. Exception NullPointerException addPropertyChangeListener
    Par teken-new dans le forum Composants
    Réponses: 2
    Dernier message: 27/09/2012, 19h41
  4. probleme avec l'exception NullPointerException
    Par dearraed dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 24/03/2010, 14h12
  5. Réponses: 1
    Dernier message: 11/06/2009, 05h17

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