destroy-method sin utilizar bean

hola primero que todo agradecer por compartir los conocimientos, segundo es que estoy utilizando BasicDataSource pero no estoy utilizando spring para configurar mi datasource utilizo la configuracion que muestran en la pagina de apache commons:
http://wiki.apache.org/commons/DBCP
el problema es que en la consola de eclipse me aparece el mensaje:

18/05/2012 01:48:58 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
GRAVE: The web application [/AppP] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

yo me imagino que es porque no tiene configurado algun metodo para cerrar la conexion, como lo tiene configurado el bean cuando utiliza
destroy-method="close"...

por favor si alguien tiene idea de como resolver esto le agradeceria mucho...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Porqué no pegas aquí el

Porqué no pegas aquí el fragmento de tu application context para ver cómo registras tu data source?
Y mejor aún, porqué no agregas el parámetro que imaginas que hace falta, y checas el comportamiento de tu conexión?
Y bueno ... porqué razón en particular no estás usando spring para la configuración del data source?

Imagen de hendaviher

codigo

sinceramente no utilizo spring porque no comprendo bien el concepto de los la definicion del datasource y el enlace de este con las clases, estoy utilizando bastantes clases que utilizan la base de datos ya que es compleja la base de datos, el codigo que utilizo es este, o si me puedes dar un ejemplo complejo con bastantes clase que usan bases de datos usando spring le agradeceria:

lo primero que tengo es un listener donde inicializo un datasource:
codigo del ServletContextListener:

public class Init implements ServletContextListener {

        public void contextDestroyed(ServletContextEvent arg0) {

        }

        private void contextInitialized2(ServletContext servletContext)
                        throws Exception {

                InitialContext enc = new InitialContext();
                Context compContext = (Context) enc.lookup("java:/comp/env");
                DataSource dataSource = (DataSource) compContext.lookup("jdbc/bdIA");
                DataAccess.setDataSource(dataSource);
        }

        public void contextInitialized(ServletContextEvent sce) {
                ServletContext servletContext = sce.getServletContext();
                try {
                        contextInitialized2(servletContext);
                } catch (Exception e) {
                        throw new RuntimeException(e);
                }
        }
}

DataAccess es una clase que establece el datasource antes de que los servlets comiencen a gestionar las peticiones, a partir de la inicialización de la clase llamada contextInitialized cuyo método es llamado cuando la aplicación es cargada por el contenedor Web:

private static DataSource       origenDeDatos;
       
        public static void setDataSource(DataSource origenDeDatos) {
                DataAccess.origenDeDatos = origenDeDatos;
        }
demas funciones getconecction close, etc para menejar la base de datos

extiendo esta clase con las clases en las que utilizo la base de datos:

este es el contex que uso:

<Context path="/AppP">
  <Resource
  auth="Container"
  driverClassName="com.mysql.jdbc.Driver"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory"
  loginTimeout="10"
  maxActive="100"
  maxIdle="30"
  maxWait="10000"
  name="jdbc/bdIA"
  password="pasetimeclass"
  testOnBorrow="true"
  type="javax.sql.DataSource"
  url="jdbc:mysql://localhost:3306/bdinfo?autoReconnect=true&amp;connectTimeout=5000&amp;socketTimeout=8000&amp;useUsageAdvisor=true"
  username="creator"
  validationQuery="SELECT 1"/>
</Context>

y esto es lo que veo que sale en la consola de Eclipse cuando cierro o reseteo la aplicacion web:

3/06/2012 07:13:55 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
GRAVE: The web application [/AppP] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Imagen de neko069

Spring docs... again

Necesitas echarle una leída a la documentación de spring (buscas la versión que estés usando), hay cosillas que puedes configurar sin tener que codificarlas.

Para lo de tu excepción al reiniciar el war, acá hay una explicación.

Para lo demás, que si la configuración del data source, que si la base de datos.. por acá ya se ha explicado cómo trabaja spring para el manejo de diferentes cuestiones ( acá, acá, acá, y acá) de hecho, puedes bajarte el proyecto de javaméxico, y checar cómo se han hecho las configuraciones correspondientes de spring.