Probleme "Exception in thread "main&quot

Fermé
fangri - 29 juin 2009 à 22:03
 fangri - 29 juin 2009 à 22:06
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");
}
}
A voir également:

1 réponse

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
0

Discussions similaires