Les descripteurs de déploiement
Il y a deux descripteurs de déploiement. Le descripteur de déploiement standard le fichier web.xml, et le descripteur de déploiement spécifique, le fichier jbossweb.xml. Le descripteur de déploiement standard est portable d’un serveur d’application à l’autre, le descripteur de déploiement spécifique est propre au serveur JBoss. Le descripteur standard contient la configuration de l’application web, des références aux ressources. Le descripteur de déploiement spécifique contient la liaison entre les ressources référencées dans le fichier web.xml et leur déploiement dans le serveur d’application. Les descripteurs de déploiement sont situés dans le répertoire WEBINF de l’application Web.
Descripteur de déploiement standard web.xml
L’élément racine du fichier web.xml comprend les éléments fils suivants : ● , , qui sont des éléments utilisés par certains outils de gestion de déploiement, pour afficher une icône, un nom et une description associés à l’application Web. ● permet de marquer l’application comme distribuable sur plusieurs serveurs, ce qui permet d’exploiter la répartition de charge contrôlée par le serveur. ● qui contient la valeur des paramètres utilisables dans toute l’application. Ces paramètres, définis dans le fichier web.xml, peuvent être utilisés dans les servlets et les pages JSP. Les paramètres sont déclarés dans les balises et . ● et qui permettent de déclarer des filtres sur des URL. Les filtres vont permettre de faire des traitements avant que la requête n’arrive à la servlet ou à la JSP, ou après que la réponse soit générée. Ce type de classe doit implémenter l’interface javax.servletFilter. ● qui permet de déclarer des écouteurs sur des événements : entre autres, démarrage et retrait de l’application web, début et fin de session. ● et qui permettent de déclarer les servlets et de les associer avec des URL. ● qui contient l’élément permettant de définir le temps maximal d’une session, en minutes. Le temps par défaut de 30 minutes est défini dans le fichier server\default\deploy\jbossweb.deployer\conf\web.xml. Vous pouvez régler ce temps, application par application. ● qui reprend les types MIME, ces types sont configurés dans le web.xml par défaut. ● qui déclare la liste des noms des pages d’accueils par défaut, si aucune ressource n’est demandée dans l’URL. ● définit les pages d’erreur à renvoyer en cas de code erreur HTTP, ou d’exception Java. ● contient le code erreur HTTP, par exemple 404 ; ● contient le nom de la classe d’exception ; ● contient le chemin de la page d’erreur à afficher. ● , , permettent de mettre en place des sections du site qui sont soumises à des autorisations d’accès. Nous aurons l’occasion de revenir plus en détail sur l’utilisation de ces balises, dans le chapitre Gestion de la sécurité consacré à la sécurité. ● , déclarent des références vers des ressources, ou des EJB, qui sont déployées sur le serveur. Ces déclarations seront associées aux ressources réelles dans le fichier de déploiement spécifique jbossweb.xml.
Descripteur de déploiement spécifique jbossweb.xml
Les ressources déclarées dans le fichier web.xml par l’intermédiaire des éléments , font référence au nommage JNDI de l’application, dans le contexte java:com/env. Les ressources réelles sont nommées dans contexte JNDI plus global. Il serait dommage que les servlets et JSP, si elles utilisent des ressources, soient obligées de connaître les noms JNDI de plus haut niveau, cela nuirait à la portabilité. Le fichier jbossweb.xml va permettre d’associer les contextes JNDI. L’élément racine de ce fichier est . Nous allons découvrir ce fichier en l’illustrant par quelques exemples. a. Nom de l’application chap5 L’élément permet de préciser le nom de l’application web. Si ce nom n’est pas précisé, l’application sera nommée avec le nom du fichier war. Si notre archive s’appelle « Chap 5 Web.war », le nom de l’application déployée sera « Chap 5 Web » qui correspondra à l’URL http://localhost:8080/Chap 5 Web/. Si une valeur est donnée à l’élément , le nom de l’application correspondra à cette valeur, dans notre cas : http://localhost:8080/chap5/.