Bonjour,

je voudrais automatisé une tache dans mon application Web (incrémenter une valeur sur la base de donnée), pour cela j'ai pensé a utiliser une ServletContextListerner , cette tache doit s'accomplir chaque fin du mois, pour l'instant j'essaye seulement de la planifier une ou deux minute après le démarrage de tomcat, quand la tache éssaye de s'executer au moment prévu j'ai une jolie erreur :


"Exception in thread "Timer-0" java.lang.NullPointerException
at web.Task.getListCollaborateursGdC(Task.java:95)
at web.Task.run(Task.java:42)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source) "



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
 
package servletListener;
 
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
 
import web.Task;
 
public class MyListener implements ServletContextListener {
 
 
	private ServletContext context = null;
 
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void contextInitialized(ServletContextEvent arg0) {
 
 
		Task task = new Task();
		task.startTask();
 
 
	}
 
}



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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
 
package web;
 
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
 
import model.CollaborateurGdC;
 
import service.ICollaborateurService;
 
 
 
 
 
 
public class Task extends TimerTask {
 
	/**
         * @param args
         */
 
 
	private ICollaborateurService collaborateurManager;
	private List<CollaborateurGdC> listCollaborateursGdC;
 
	public void startTask(){
		System.out.println("task start");
		TimerTask task = new Task();
		Timer timer = new Timer();
		timer.scheduleAtFixedRate(task, getDate(), 1000*60); //chaque minute
	}
 
 
 
	@Override
	public void run() {
 
		System.out.println("Debut Tache");
		float incr=(float) 1.5;
		for(int i=0;i<getListCollaborateursGdC().size();i++){
			collaborateurManager.updateCollaborateurGdC(listCollaborateursGdC.get(i), incr);
		}
		System.out.println("Fin Tache");
 
	}
 
 
 
 
 
	private  Date getDate(){
 
	    Calendar calendar = Calendar.getInstance();
	    calendar.set(Calendar.HOUR_OF_DAY, 12);
	    calendar.set(Calendar.MINUTE, 14);
	    calendar.set(Calendar.SECOND, 00);
	    Date time = calendar.getTime();
 
	    return time;
 
}
 
 
 
	public ICollaborateurService getCollaborateurManager() {
		return collaborateurManager;
	}
 
 
 
	public void setCollaborateurManager(ICollaborateurService collaborateurManager) {
		this.collaborateurManager = collaborateurManager;
	}
 
 
 
	public List<CollaborateurGdC> getListCollaborateursGdC() {
		listCollaborateursGdC=collaborateurManager.getCollaborateursGdC();
		return listCollaborateursGdC;
	}
 
 
 
	public void setListCollaborateursGdC(
			List<CollaborateurGdC> listCollaborateursGdC) {
		this.listCollaborateursGdC = listCollaborateursGdC;
	}
 
 
}


Merci pour votre aide