y me genera el siguiente mensaje:
Prueba del Pool de Objetos Buscamos tutorial con sentencias preparadas Probamos a recuperar conexi�n Intento de tomar la conexion... Error al procesar consulta Cannot create JDBC driver of class '' for connect URL 'null' Error en proceso null -Fin-
Código:
el web.xmlimport java.io.IOException; import java.io.PrintWriter; import java.sql.*; import javax.sql.*; import javax.servlet.*; import javax.servlet.http.*; import javax.naming.*; public class poolBaseDatos extends HttpServlet { public DataSource fuenteDatos = null; public void init(ServletConfig config) throws ServletException { try{ // recuperamos el contexto inicial y la referencia a la fuente de datos Context ctx = new InitialContext(); //fuenteDatos = (DataSource) ctx.lookup("java:comp/env/jdbc/Pruebas"); // Look up a connection factory instance //javax.resource.cci.ConnectionFactory cf = (javax.resource.cci.ConnectionFactory) fuenteDatos = (DataSource) ctx.lookup("java:comp/env/jdbc/Pruebas"); //com.sybase.jdbcx.SybDataSource } catch (Exception e){ throw new ServletException("Imposible recuperar java:comp/env/jdbc/Pruebas",e); } } //Esto se podria cambiar a private por seguridad public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection con = null; // conexion parcial response.setContentType("text/html"); // retornamos el tipo de respuesta PrintWriter out = response.getWriter(); out.println("Prueba del Pool de Objetos"); out.println("Buscamos tutorial con sentencias preparadas"); try { out.println("Probamos a recuperar conexión"); synchronized (fuenteDatos) { out.println("<b>Intento de tomar la conexion...</b>"); con = fuenteDatos.getConnection(); // cogemos la conexion } if(con == null) { out.println("Error al recuperar la conexion, es nula"); throw new ServletException("Problemas con la conexion"); } out.println("Preparamos la consulta"); PreparedStatement pstmt = con.prepareStatement("SELECT * FROM usuarios"); pstmt.setInt(1,10); // establecemos el entero ResultSet results = pstmt.executeQuery(); while (results.next()) { String id = results.getString(1); String titulo = results.getString(2); out.println("El titulo es " + titulo + " para id " + id + ""); } } catch (Exception e) { out.println("Error al procesar consulta " + e.getMessage()); } finally // pase lo que pase retornamos la conexion { try { con.close(); } catch (Exception e) { out.println("Error en proceso " + e.getMessage()); } } out.println("-Fin-"); // cerramos la respuesta out.close(); // Cerramos buffer } }
Código:
y el server.xml<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>poolBaseDatos</servlet-name> <servlet-class>poolBaseDatos</servlet-class> </servlet> <servlet-mapping> <servlet-name>poolBaseDatos</servlet-name> <url-pattern>/poolBaseDatos</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <resource-ref> <res-ref-name>jdbc/Pruebas</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
Código:
Código funciona, el problema es la conexión. <Context path="/Tomcat6" docBase="tomcat5" debug="0" reloadable="true"> <ResourceParams name="jdbc/Pruebas"> <parameter> <name>username</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value>123456</value> </parameter> <parameter> <name>driverClassName</name> <value>com.sybase.jdbc3.jdbc.SybDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:sybase:Tds:VISTAESCRITORIO:5000/Pruebas</value> </parameter> </ResourceParams> </Context>