Quelqu'un pourrait-il fournir quelques détails sur la façon de configurer Tomcat pour accéder à MySQL?
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
?
Dois-je ajouter une configuration à context.xml
ou server.xml
?
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?
1: Où placer
mysql-connector-Java-5.1.13-bin
Dans le répertoire Tomcat? Dois-je le placer sousTomcat 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
Ouserver.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 sousTomcat 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.