Configurer web.xml avec load-on-startup
Bonjour à tous,
Lorsque je démarre mon serveur Tomcat v7, j'ai ce message d'erreur d'erreur:
SEVERE: Servlet /nomproject threw load() exception
java.lang.ClassCastException: servletPackage.FetchMail cannot be cast to javax.servlet.Servlet
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Dans mon web.xml, j'ai mis ceci :
<servlet>
<servlet-name>FetchMail</servlet-name>
<servlet-class>servletPackage.FetchMail</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
Et voici le contenu de cette servlet :
Code:
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
| package servletPackage;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Date;
public class FetchMail extends TimerTask {
/** Construct and use a TimerTask and Timer. */
public static void main (String... arguments ) {
TimerTask fetchMail = new FetchMail();
//Execute cette tâche une fois par jour à 6h30,
Timer timer = new Timer();
timer.scheduleAtFixedRate(fetchMail, getTomorrowMorning4am(), fONCE_PER_DAY);
}
/*** Implements TimerTask's abstract run method. */
@Override public void run(){
//toy implementation
System.out.println("Ceci est un test des automatisation des tâches...");
}
// PRIVATE
//expressed in milliseconds
private final static long fONCE_PER_DAY = 1000*60*60*24;
private final static int fONE_DAY = 1;
private final static int fFOUR_PM = 2;
private final static int fZERO_MINUTES = 0;
private static Date getTomorrowMorning4am(){
Calendar tomorrow = new GregorianCalendar();
tomorrow.add(Calendar.DATE, fONE_DAY);
Calendar result = new GregorianCalendar(
tomorrow.get(Calendar.YEAR),
tomorrow.get(Calendar.MONTH),
tomorrow.get(Calendar.DATE),
fFOUR_PM,
fZERO_MINUTES
);
return result.getTime();
}
} |
que j'ai copié dans le site suivant: http://www.javapractices.com/topic/TopicAction.do?Id=54
Mon but est créé une tâche d'envoi des mails automatiquement avec java web. A ce stade le code pour l'envoi d'email n'est pas encore saisi. Merci de votre aide une fois de plus.