Rechercher : dans
Par :

Probleme "Exception in thread "main"

Dernière réponse le 29 jun 2009 à 22:06:10 fangri, le 29 jun 2009 à 22:03:26 
 Signaler ce message aux modérateurs

Bonjour,
comme je suis débutant en matière de jee et en struts, j'ai eu un problème de Exception in thread "main" java.lang.NullPointerException.
je vous explique le principe de mon programme:
j'ai fais une class ConsultAction qui prend les adresse ip de la base de données et les ping. jusque la, ca marchait bien.
puis je veux améliorer, donc j'ai fais une autre classe Tempo qui utilise le Timer et le TimerTask pour que je puisse pinguer chaque 7 secondes pour que ca soit dynamique.le probleme qui se pose est que la classe ConsultAction, la seule méthode est la methode "execute", et donc ne peut pas etre appelé dans le "run" du timerTask.
j'espere que j'etais assez clair.et merci d'avance pour votre précieuse aide.(svp, ceci doit etre prêt d'ici demain)
voici ma classe Tempo(c'est assez bizzare comme classe mais c'est ca les débutants):


package com.myapp.struts;

import java.io.IOException;
import java.net.UnknownHostException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/**
*
* @author Amineobg
*/


public class tempo {


Timer timer;

public tempo() {

timer = new Timer();
timer.schedule(new tempos(), 0, //initial delay
7 * 1000); //subsequent rate
}


class tempos extends TimerTask {

consultAction ca=new consultAction();
ActionMapping mapping;
ActionForm form;
HttpServletRequest request;
HttpServletResponse response;
ConnexionBD bd=new ConnexionBD();
HttpSession session=request.getSession();
sites s;
List<sites> st=new ArrayList();

Ping p=new Ping();
boolean etat=false;

public void run() {

try {
bd.lire("select * from sites");
while (bd.résultat.next()) {
String ip = bd.résultat.getString("add_ip");
System.out.println("ip " + ip);
try {
etat = p.ping(ip);
} catch (UnknownHostException ex) {
Logger.getLogger(tempo.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(tempo.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("etat " + etat);
String nom = bd.résultat.getString("nom_user");
String site = bd.résultat.getString("nom_site");
if (etat) {
s = new sites(ip, nom, site, "true");
} else {
s = new sites(ip, nom, site, "false");
}
st.add(s);
}
} catch (SQLException ex) {
Logger.getLogger(tempo.class.getName()).log(Level.SEVERE, null, ex);
}
session.setAttribute("sites", st);


throw new UnsupportedOperationException("Not supported yet.");
}

}
public static void main(String argv[])
{
tempo tt=new tempo();
System.out.println("machine pinguée");
}
}

Configuration: Windows Vista
Safari 525.19

Meilleures réponses pour « probleme "Exception in thread "main" » dans :
Java - Les exceptions VoirLa nécessité de détecter les erreurs Tout programme comporte des erreurs, même si celui-ci semble fonctionner à merveille. Chaque programmeur essaye de réduire au minimum le nombre d'erreurs, mais toutes les erreurs ne peuvent pas forcément être...

1

 fangri, le 29 jun 2009 à 22:06:10

J'ai oublié de dire que comme execute ne pouvait pas etre importée ailleurs, j'ai copier tout le contenu de cette methode dans le run

Répondre à fangri