La fondation Apache a changé le parémtrage de tomcat depuis la v4.x : le "context" devrait être stocké dans un fichier par application. Auparavant il était écrit dans le server.xml de Tomcat.
Ainsi, le fichier META-INF/context.xml contient maintenant le noeud<Context>. Voici un exemple de création d'un pool de connection Tomcat. Le SGBD est MySQL, le fichier META-INF/context.xml contient :<Context path="/appli" reloadable="true" docBase="\appli">
<Resource name="jdbc/mysqlDataBase" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30"
maxWait="10000" username="root" password="admin"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/database" />
</Context>Le contexte de l'application web est/appli (http://localhost:8080/appli); la référence JNDI se nomme
jdbc/mysqlDataBaseet pointe vers une base MySQL (attribut url). A cette base, la connection s'établit en utilisant l'utilisateur marqué par l'attribut username, le mot de passe étant fourni par password. Le context.xml est maintenant terminé, il faut écrire dans le WEB-INF/web.xml de l'application la référence à la ressource JNDI :
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
....
<resource-ref>
<description>
reference a la ressource BDD pour le pool
</description>
<res-ref-name>jdbc/mysqlDataBase</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
....
</web-app>On retrouve le nom de la ressource JNDI
jdbc/mysqlDataBase. Maintenant notre application web peut accéder au pool de connection Tomcat par le bout de code suivant : try {
// récupération de la source de donnée
Context initCtx = new InitialContext();
ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mysqlDataBase");
} catch (Exception e) {
e.printStackTrace();
}


clics


