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>
.

