Como configurar o Tomcat para se conectar ao MySQL

Alguém poderia fornecer alguns detalhes sobre como configurar o Tomcat para acessar o MySQL?

  1. Em qual diretório do Tomcat eu coloco o mysql-connector-java-5.1.13-bin ? Devo colocá-lo no Tomcat 6.0\webapps\myapp\WEB-INF\lib ?

  2. Preciso adicionar configuração a context.xml ou server.xml ?

  3. Devo criar um arquivo web.xml e colocá-lo em Tomcat 6.0\webapps\myapp\WEB-INF ? Se sim, então como deve ser o conteúdo deste arquivo?

1: Onde colocar o mysql-connector-java-5.1.13-bin no diretório do Tomcat? Devo colocá-lo no Tomcat 6.0\webapps\myapp\WEB-INF\lib ?

Isso depende de onde as conexões devem ser gerenciadas. Normalmente, você gostaria de criar uma origem de dados JNDI com conexão em conjunto para melhorar o desempenho da conexão. Nesse caso, o Tomcat está gerenciando as conexões e precisa ter access ao driver JDBC. Você deve, então, descartar o arquivo JAR no Tomcat/lib .

Mas se você está fazendo isso da maneira básica usando DriverManager#getConnection() , então, na verdade, não importa se você soltá-lo no Tomcat/lib ou YourApp/WEB-INF/lib . No entanto, você precisa perceber que o que está no Tomcat/lib se aplicará a todos os YourApp/WEB-INF/lib implementados e que aquele no YourApp/WEB-INF/lib replaceá o do Tomcat/lib apenas para o YourApp/WEB-INF/lib específico.


2: Preciso server.xml arquivos context.xml ou server.xml ?

Isso depende de onde as conexões devem ser gerenciadas. Ao usar uma origem de dados JNDI, basta configurá-lo usando YourApp/META-INF/context.xml como segue (basta criar o arquivo, se não existir):

     

e o YourApp/WEB-INF/web.xml seguinte forma:

  jdbc/yourdb javax.sql.DataSource  

Se você está fazendo o caminho básico do DriverManager , então tudo depende de você. Codificado, arquivo de propriedades, arquivo XML, etc. Você deveria administrar você mesmo. Tomcat não (e não pode) fazer qualquer coisa útil para você.

Notável deve ser que o YourApp/META-INF/context.xml é específico para Tomcat e clones. Cada servletcontainer / appserver possui sua própria maneira de definir resources JNDI. Em Glassfish, por exemplo, você gostaria de fazer isso por meio da interface de administração baseada na web.


3: Devo gravar o arquivo web.xml e preciso colocá-lo sob o Tomcat 6.0\webapps\myapp\WEB-INF ? Se sim, então qual deve ser o conteúdo do arquivo?

Você deve sempre fornecer um. Não é apenas para configurar resources, mas também para definir servlets, filtros, ouvintes e esse tipo de material obrigatório para executar o seu webapp. Este arquivo faz parte da API padrão do Servlet.

Veja também:

  • É seguro usar uma instância java.sql.Connection estática em um sistema multithread?
  • Como devo me conectar ao database / origem de dados JDBC em um aplicativo baseado em servlet?
  • Onde devo colocar o driver JDBC para o pool de conexão do Tomcat?
  • Tutorial do DAO – tutorial básico do JDBC / DAO, direcionado ao Tomcat / JSP / Servlet

A resposta às suas perguntas:

  1. Uma opção é a que você mencionou: coloque o driver no WEB-INF/lib em seu arquivo WAR. O outro seria no $TOMCAT_HOME/lib . A vantagem deste último é que você não precisa copiar o jar do conector em cada projeto que você implementa no servidor de aplicativos. A desvantagem é que você precisará lembrar de colocar o arquivo jar no lugar antes de implementar seu aplicativo em um servidor de aplicativos diferente.
  2. Se você precisar alterar algo na configuração padrão, sim. Caso contrário, existem arquivos context.xml e server.xml com opções padrão fornecidas com instalações do tomcat.
  3. O web.xml do seu aplicativo (WAR) deve estar no WEB-INF em seu arquivo de implementação. Você pode examinar o conteúdo aceito para esse arquivo na especificação do contêiner de servlet do Java EE. Normalmente, você coloca seu servlet, filtro e seus mapeamentos correspondentes nesse arquivo.