ServletContextListener

di il
2 risposte

ServletContextListener

Salve a tutti,
ho creato in ecplise un progetto e creato una classe ServletContextListener. Di seguito lo scenario:
Apache Tomcat 10
Java 11

Nel web.xml ho inserito queste info:
<listener>
<listener-class>com.example.MyServletContextListener</listener-class>
</listener>

Questa è la classe:
package com.example;
import jakarta.servlet.*;

//@WebListener
public class MyServletContextListener implements ServletContextListener {

public void ContextInitialized(ServletContextEvent event) {
System.out.print("PIPPO");
}

public void contextDestroyed(ServletContext event) {
// NULLA!!!
}
}

Ho notato che però la classe non viene chiamata all'avvio di tomcat perchè non viene restituito nulla in output.

IDEA?
Grazie mille

2 Risposte

  • Re: ServletContextListener

    Sei sicuro del codice che hai postato? Non dovrebbe nemmeno compilare perchè manca la definizione del metodo
    
    public void contextInitialized(ServletContext ctx)
    
    La "C" iniziale va minuscola! Quello che hai definito tu (con la C maiuscola) è un metodo diverso che nessuno usa.

    Ad ogni modo, per evitare questo tipo di errori, è stata introdotta ormai da tempi immemori l'annotazione @Override da anteporre ad ogni metodo di cui fai l'override (compresi quelli delle interfacce).

    Se, come nel tuo caso, li scrivi male (la C maiuscola) il compilatore se ne accorge subito e ti avvisa.
  • Re: ServletContextListener

    Non so come ringraziarti! ci ho sbattutto la testa per ore
    grazie infinite
Devi accedere o registrarti per scrivere nel forum
2 risposte