salve ho deployato una semplice servlet su un WebSphere server.
la servlet è implementata in questo modo :

package com.xxx.etaplus.report.servlet;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.log4j.Logger;

import com.xxx.etaplus.report.timertask.ReportsRequestMan ager;

public class StarterReportPollerServlet extends GenericServlet {
private static final long serialVersionUID = -9025308504635245579L;
private ServletConfig config;
private static final Logger logger = Logger.getLogger(StarterReportPollerServlet.class) ;
private ReportsRequestManager reportsRequestManager = null;


public ServletConfig getServletConfig() {
return config;
}

public String getServletInfo() {
return "A Simple Servlet";
}

public void destroy() {
reportsRequestManager.destroy();
}

public void init() throws ServletException {
logger.fatal("-------------------------REPORT----------------------");
long init = System.currentTimeMillis();
String logPrefix = " StarterReportPollerServlet -- metodo :init ";
logger.debug(logPrefix + " inizio metodo");

try {
reportsRequestManager=new ReportsRequestManager();

reportsRequestManager.poll();


} catch (Throwable e) {
logger.fatal("ERRORE NEL LANCIO DEL POLLER REPORT:"+e.getMessage());
e.printStackTrace();

} finally {

long end = System.currentTimeMillis();
long timeFinal = (end - init) / 100;
logger.debug(logPrefix + "fine metodo - tempo ->" + timeFinal
+ " decimi di secondi");
}
}


private boolean shootingDown = false;

protected synchronized void setShootingDown(boolean flag) {
shootingDown = flag;
}

protected synchronized boolean isShootingDown() {
return shootingDown;
}

@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
long init = System.currentTimeMillis();
String logPrefix = " ReaderFlussiServlet-- metodo :Service ";
logger.debug(logPrefix + " inizio metodo");

try {

ReportsRequestManager reportsRequestManager= new ReportsRequestManager();
reportsRequestManager.poll();


} catch (Throwable e) {
logger.fatal("ERRORE NEL LANCIO DEL POLLER REPORT:"+e.getMessage());
e.printStackTrace();

} finally {

long end = System.currentTimeMillis();
long timeFinal = (end - init) / 100;
logger.debug(logPrefix + "fine metodo - tempo ->" + timeFinal
+ " decimi di secondi");
}
}



}


il web.xml è questo:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
EtaPlusReportWeb</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>StarterReportPollerServlet</servlet-name>
<servlet-class>com.cardif.etaplus.report.servlet.StarterRep ortPollerServlet</servlet-class>
<load-on-startup/>
</servlet>
<servlet-mapping>
<servlet-name>StarterReportPollerServlet</servlet-name>
<url-pattern>/StarterReportPollerServlet</url-pattern>
</servlet-mapping>

<resource-ref>
<res-ref-name>jdbc/etaplusdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>


quando sulla console di WEBSPHERE server stoppo il WAR che contiene questa servlet il metodo destroy non viene richiamato .... come mai ?

secondo il tutorial di WEBSPHERE server devo andare a modificare il web container .....
come posso fare per stoppare la mia servlet .

Grazie del tempo dedicatomi .