Cómo configurar Tomcat para conectarse con MySQL

¿Podría alguien proporcionar algunos detalles sobre cómo configurar Tomcat para acceder a MySQL?

  1. ¿En qué directorio dentro de Tomcat mysql-connector-java-5.1.13-bin ? ¿Debo colocarlo en Tomcat 6.0\webapps\myapp\WEB-INF\lib ?

  2. ¿Debo agregar configuración a context.xml o server.xml ?

  3. ¿Debo crear un archivo web.xml y colocarlo en Tomcat 6.0\webapps\myapp\WEB-INF ? Si es así, ¿cómo debería ser el contenido de este archivo?

1: ¿Dónde colocar mysql-connector-java-5.1.13-bin en el directorio de Tomcat? ¿Debo colocarlo en Tomcat 6.0\webapps\myapp\WEB-INF\lib ?

Eso depende de dónde se administrarán las conexiones. Normalmente, le gustaría crear una conexión de fonts de datos JNDI para mejorar el rendimiento de la conexión. En ese caso, Tomcat está administrando las conexiones y necesita tener acceso al controlador JDBC. Debería soltar el archivo JAR en Tomcat/lib .

Pero si lo hace de la manera básica usando DriverManager#getConnection() , entonces de hecho no importa si lo suelta en Tomcat/lib o YourApp/WEB-INF/lib . Sin embargo, debe tener en cuenta que el que se encuentra en Tomcat/lib se aplicará a todas las YourApp/WEB-INF/lib implementadas y que el de YourApp/WEB-INF/lib prevalecerá sobre el de Tomcat/lib únicamente para la aplicación web específica.


2: ¿Necesito server.xml archivos context.xml o server.xml ?

Eso depende de dónde se administrarán las conexiones. Cuando se utiliza un origen de datos JNDI, basta con configurar YourApp/META-INF/context.xml siguiente manera (simplemente cree el archivo si no existe):

     

y YourApp/WEB-INF/web.xml siguiente manera:

  jdbc/yourdb javax.sql.DataSource  

Si lo hace de la manera básica de DriverManager , entonces depende de usted. Hardcoded, archivo de propiedades, archivo XML, etcétera. Deberías manejarlo tú mismo. Tomcat no hará (y no puede) hacer nada útil para usted.

Notado debe ser que el YourApp/META-INF/context.xml es específico para Tomcat y clones. Cada servletcontainer / appserver tiene su propia forma de definir los recursos JNDI. En Glassfish, por ejemplo, le gustaría hacer eso a través de la interfaz de administración basada en web.


3: ¿Debo escribir el archivo web.xml y necesito Tomcat 6.0\webapps\myapp\WEB-INF en Tomcat 6.0\webapps\myapp\WEB-INF ? Si es así, ¿cuál debería ser el contenido del archivo?

Siempre debe proporcionar uno. No se trata solo de configurar recursos, sino también de definir servlets, filtros, oyentes y ese tipo de material obligatorio para ejecutar su aplicación web. Este archivo es parte de la API estándar de Servlet.

Ver también:

  • ¿Es seguro usar una instancia java.sql.Connection estática en un sistema multiproceso?
  • ¿Cómo debo conectarme a la base de datos / fuente de datos JDBC en una aplicación basada en servlet?
  • ¿Dónde debo colocar el controlador JDBC para el conjunto de conexiones de Tomcat?
  • DAO Tutorial: tutorial básico de JDBC / DAO, dirigido a Tomcat / JSP / Servlet

La respuesta a tus preguntas:

  1. Una opción es lo que ha mencionado: coloque el controlador en el directorio WEB-INF/lib en su archivo WAR. El otro estaría en el $TOMCAT_HOME/lib . La ventaja de este último sería que no necesita copiar el jarrón conector en cada proyecto que implemente en ese servidor de aplicaciones. La desventaja es que deberá recordar colocar el archivo jar en su lugar antes de implementar su aplicación en un servidor de aplicaciones diferente.
  2. Si necesita cambiar algo en la configuración predeterminada, sí. De lo contrario, hay archivos context.xml y server.xml con opciones predeterminadas enviadas con instalaciones de tomcat.
  3. El web.xml de su aplicación (WAR) debe estar en el directorio WEB-INF de su archivo de despliegue. Puede ver el contenido aceptado en ese archivo en la especificación del contenedor de servlets de Java EE. Normalmente, coloca su servlet, filtro y sus asignaciones correspondientes en ese archivo.