J'ai observé une différence de comportement entre Tomcat 7 et Tomcat 6 sur la gestion du context d'une webapp. Pour rappel on peut définir son context applicatif en ajoutant un fichier META-INF\context.xml dans le war de l'application.
Par exemple
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/mywebapp" unpackWAR="false">
<ResourceLink global="jdbc/myWebAppDataSource" name="jdbc/dataSource" type="javax.sql.DataSource"/>
<Loader className="org.apache.catalina.loader.VirtualWebappLoader" virtualClasspath="${catalina.home}/conf/mywebap"/>
</Context>
Tomcat 6 récupère ce fichier et le place dans le répertoire $CATALINA_BASE/conf/Catalina/[hostname]/. Tomcat 7 n'a pas le même comportement et ne copie pas automatiquement le fichier ce qui permet par exemple d'agir sur la configuration d'une webapp manuellement sans voir ses changements écrasés par Tomcat.
Le fichier placé dans le répertoire $CATALINA_BASE/conf/Catalina/[hostname]/ a toujours la précédence sur le fichier context.xml contenu dans le war. J'ai observé des problèmes d'accès au VirtualClasspath si ce fichier n'était pas déclaré dans $CATALINA_BASE/conf/Catalina/[hostname]/.
Pour forcer Tomcat 7 a extraire le fichier context.xml contenu dans le war et le placer dans $CATALINA_BASE/conf/Catalina/[hostname]/ vous pouvez ajouter le paramètre copyXML lors de la configuration de votre [hostname] dans le répertoire $CATALINA_BASE/conf/server.xml
Par exemple
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" copyXML ="true">
Aucun commentaire:
Enregistrer un commentaire
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.