web-dev-qa-db-fra.com

Comment configurer Tomcat pour se connecter à MySQL

Quelqu'un pourrait-il fournir quelques détails sur la façon de configurer Tomcat pour accéder à MySQL?

  1. Dans quel répertoire de Tomcat dois-je placer mysql-connector-Java-5.1.13-bin? Dois-je le placer sous Tomcat 6.0\webapps\myapp\WEB-INF\lib?

  2. Dois-je ajouter une configuration à context.xml ou server.xml?

  3. Dois-je créer un web.xml fichier et placez-le sous Tomcat 6.0\webapps\myapp\WEB-INF? Si oui, à quoi devrait ressembler le contenu de ce fichier?

18
Sohail

1: Où placer mysql-connector-Java-5.1.13-bin Dans le répertoire Tomcat? Dois-je le placer sous Tomcat 6.0\webapps\myapp\WEB-INF\lib?

Cela dépend de l'endroit où les connexions doivent être gérées. Normalement, vous souhaitez créer une source de données JNDI regroupée en connexion pour améliorer les performances de connexion. Dans ce cas, Tomcat gère les connexions et doit avoir accès au pilote JDBC. Vous devez ensuite déposer le fichier JAR dans Tomcat/lib.

Mais si vous le faites de la manière de base en utilisant DriverManager#getConnection() , cela n'a en fait pas d'importance si vous le déposez dans Tomcat/lib Ou YourApp/WEB-INF/lib. Vous devez cependant réaliser que celle de Tomcat/lib S'appliquera pour toutes les webapps déployées et que celle de YourApp/WEB-INF/lib remplacera celui de Tomcat/lib uniquement pour la webapp particulière.


2: Dois-je configurer les fichiers context.xml Ou server.xml?

Cela dépend de l'endroit où les connexions doivent être gérées. Lorsque vous utilisez une source de données JNDI, il suffit de la configurer en utilisant YourApp/META-INF/context.xml Comme suit (créez simplement un fichier s'il n'existe pas):

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource
        name="jdbc/yourdb" type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" 
        url="jdbc:mysql://localhost:3306/yourdb"
        driverClassName="com.mysql.jdbc.Driver"
        username="yourname" password="yourpass"
    />
</Context>

et le YourApp/WEB-INF/web.xml comme suit:

<resource-env-ref>
    <resource-env-ref-name>jdbc/yourdb</resource-env-ref-name>
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>

Si vous le faites de la manière de base DriverManager, alors tout dépend de vous. Hardcoded, fichier de propriétés, fichier XML, etc. Vous devez le gérer vous-même. Tomcat ne fera (et ne pourra) rien faire d'utile pour vous.

Il convient de noter que le YourApp/META-INF/context.xml Est spécifique à Tomcat et aux clones. Chaque servletcontainer/appserver a sa propre façon de définir les ressources JNDI. Dans Glassfish par exemple, vous aimeriez le faire via l'interface d'administration basée sur le Web.


3: Dois-je écrire le fichier web.xml Et dois-je le placer sous Tomcat 6.0\webapps\myapp\WEB-INF? Si oui, quel devrait être le contenu du fichier?

Vous devez toujours en fournir un. Ce n'est pas seulement pour configurer des ressources, mais aussi pour définir des servlets, des filtres, des écouteurs et ce genre de choses obligatoires pour exécuter votre webapp. Ce fichier fait partie de l'API Servlet standard.

Voir également:

30
BalusC