Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/12/2007, 06:11
jotamachuca
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
Problemas con creación de Pool de conexion Tomcat

Holas.

Estoy tratando de crear un pool de conexiones en tomcat, para acceder a la base de datos, y me esta dando un error heavy. Les cuento.

Tengo la siguiente configuración en el archivo server.xml de Tomcat

Código:
...
<Context path="/Prueba" docBase="Prueba" debug="0" reloadable="true">
					<ResourceParams name="conexionPrueba" 
						username="postgres" password="" 
						driverClassName="org.postgresql.Driver"
						url="jdbc:postgresql://127.0.0.1:5432/manejadorVersion" 
						type="javax.sql.DataSource"
						/>
				</Context>
			</Host>
....
Esto en el archivo web.xml

Código:
<resource-ref>
		<res-ref-name>conexionPrueba</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>
Archivo context.xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Prueba" docBase="Prueba" debug="5" reloadable="true"
      crossContext="true">
	<ResourceParams name="conexionPrueba" 
					username="postgres" password="" 
					driverClassName="org.postgresql.Driver"
					url="jdbc:postgresql://127.0.0.1:5432/manejadorVersion" 
					type="javax.sql.DataSource"
	/>
	<WatchedResource>WEB-INF/web.xml</WatchedResource>
	<WatchedResource>META-INF/context.xml</WatchedResource>
</Context>
El archivo context.xml está en la carpeta META-INF de mi proyecto. Y accedo con el siguiente código

Código:
DataSource fuenteDatos = null;
		try
        {
 
            Context ctx = new InitialContext();
            fuenteDatos = (DataSource) ctx.lookup("java:/comp/env/conexionPrueba");
            Connection con = fuenteDatos.getConnection();
            
            PreparedStatement pstmt = con.prepareStatement("select * from pais" );
            ResultSet results = pstmt.executeQuery();
            
            while (results.next())
            {
                String id = results.getString(1);
                String titulo = results.getString(2);
                System.out.println("El titulo es " + titulo + " para id " + id + "");
            }
        }
        catch (Exception e)
        {
            // throw new ServletException("Imposible recuperar java:comp/env/jdbc/tutoriales",e);
        	System.out.println("Se cayo esta mier.... ");
        	e.printStackTrace();
        }
Y me da la siguiente excepción

Código:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
	at cl.sodimac.prueba.action.IniciarSesionAction.execute(IniciarSesionAction.java:79)
	at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
	at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
	at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
	at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
	at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
	at java.sql.DriverManager.getDriver(DriverManager.java:253)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143)
	... 25 more
He buscado información al respecto de este error "Cannot create JDBC driver of class '' for connect URL 'null' " y he hecho lo que dicen, crear el archivo context.xml, usar el formato.. etc.. y no me resulta.

Alguien sabe que puede ser ????

Espero sus comentarios

Saludos