Professional Documents
Culture Documents
Qu es Tomcat?
Apache Tomcat (tambin llamado Jakarta Tomcat o simplemente Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems. Es un servidor web (http) y funciona como un contenedor de servlets. Es la implementacin de referencia de las especificaciones de servlets 2.5 y de Java Serves Pages (JSP) 2.1, especificaciones para Java Community Process, usado como servidor web autnomo en entornos con alto nivel de trfico y alta disponibilidad. Dado que Apache Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la mquina virtual Java.
Qu es un pool de conexiones?
Un pool de conexiones es un conjunto limitado de conexiones a una base, que es manejado por un servidor de aplicaciones (Tomcat) de forma tal, que dichas conexiones pueden ser reutilizadas por los diferentes usuarios. Este pool es administrado por un servidor de aplicaciones que va asignando las conexiones a medida que los clientes van solicitando consultas o actualizaciones de datos.
Para qu se usa?
El pool permite tener centralizado y controlado el manejo de las conexiones a la base de datos, ya que el acceso a la misma no se hace desde el cliente, como en una aplicacin en 2 capas, sino que en este tipo de aplicacin el acceso es realizado por el servidor de aplicaciones. Para ello podemos utilizar un pool de conexiones a la base de datos. La cantidad de conexiones abiertas a una base de datos es limitada, dado que consumen muchos recursos del servidor de base de datos, y se requiere memoria y tiempo del procesador por cada nueva conexin. El manejo de un pool favorece la escalabilidad y performance de una aplicacin.
2) Descargas
a. Descargar el programa en: http://tomcat.apache.org/download-70.cgi b. De acuerdo a nuestro sistemas operativo vamos a realizar la descarga, nosotros usaremos Windows y el ejecutable aunque tambin podemos usar el archivo zipeado:
3) Instalacin
a. Usando el instalador: i. Ejecutar el instalador
ii. Siguiente
v. Seleccionamos un puerto por donde oir el servidor, usaremos el puerto 8089 (ten cuidado en no repetir el puerto puede ocasionar problemas, recuerda que cuando instalas Netbeans por defecto este instala Glassfish y tomcat con los puertos 8080 y 8084 respectivamente). Tambin escribimos el usuario y contrasea para la administracin del Tomcat, user: cjava; password: cjavaperu
xi. Verificamos la correcta instalacin del tomca abriendo en InicioTodos los programas Apache Tomcat 7 Welcome o escribimos en el navegador: localhost:8089 o 127.0.0.1:8089
xii. Administramos el estado, hacemos click en server Status e ingresamos el usuario y password.
4. Ejemplo
Crearemos un ejemplo usando Pool de conexiones a MySQL. Lo que haremos ser: Registrar el Pool en el fichero server.xml Dejar a mano las clases del Driver Crear nuestro servlet Hacer accesible el Pool al servlet Crear la tabla en base de datos
1. Server.xml Lo primero que hacemos, es modificar el fichero server.xml C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\server.xml
<Context path="/tomcat7" docBase="tomcat7" debug="0"
reloadable="true" >
<ResourceParams name="jdbc/cjavaDB"> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value>cjavaperu</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/cjavaBase</value> </parameter> </ResourceParams> </Context>
2. Jar del Driver JDBC Ahora introducimos el Jar del Driver Jdbc de MySQL en el directorio adecuado, creamos la carpeta common dentro de tomcat 7 y la carpeta lib dentro de common de la siguiente forma:
C:\Program Files\Apache Software Foundation\Tomcat 7.0\common\lib\mysql-connectorjava-5.1.21-bin.jar
Quedando as:
C:\Program Files\Apache Software Foundation\Tomcat 7.0\common\lib\mysql-connectorjava-5.1.21-bin.jar
public class poolBaseDatos extends HttpServlet { private 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/cjavaDB"); } catch (Exception e) { throw new ServletException("Imposible recuperar java:comp/env/jdbc/cjavaDB",e); } } 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 conexin"); synchronized (fuenteDatos) { 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 tutoriales WHERE id < ?"); 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 } }
6. Ahora solo nos hace falta desplegar la aplicacin: Por lo que creamos nuestro directorio y copiamos los ficheros C:\Program Files\Apache Software
Foundation\Tomcat 7.0\webapps\tomcat7
Otra solucin es comprimir la estructura anterior en un fichero WAR y dejarlo caer en C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps 7. El resultado: