ISI 1022 : Déploiement d applications Web Jean-Noël Sorenti. Année 2002/2003 Déploiement d application Web Utilisation de Jakarta Tomcat ISI 1022 : 1
ISI 1022 : Déploiement d applications Web Une application Web est déployée sous un serveur d application : Tomcat de Apache Websphere d IBM Etc En développement, on a un autodéploiement sur des serveurs de test : Tomcat pour JBuilder WTE pour Visual Age d IBM 2
ISI 1022 : Déploiement d applications Web Une application Web J2EE est composée : de pages statiques : *.html, *.htm, *.javascript (1), *.css, *.jpeg, *.giff de pages dynamiques : *.shtml, *.jsp (servlets jsp) de Servlets et de code métier java : *.class dans des répertoires d un fichier (descripteur) de déploiement : web.xml 3 (1) : Un fichier JavaScript est statique coté serveur!
ISI 1022 : Descripteur de déploiement Le descripteur de déploiement est un fichier nommé web.xml comprenant : La déclaration de l application Web La déclaration des Servlets : nom + nom de classe + paramètres de configuration : Les Servlets seront instanciées dynamiquement grâce au nom de classe. Le mapping des Servlets : une table de correspondance va associer le path de l URL à sa servlet, par exemple /bonjour pour la servlet bonjour. 4
ISI 1022 : Descripteur de déploiement Selon le serveur, le fichier de déploiement peut varier : Exemple avec Tomcat : <?xml version="1.0" encoding="iso-8859-1"?> <web-app> <servlet> <servlet-name>bonjour</servlet-name> <servlet-class>appli.servlets.bonjour</servlet-class> </servlet>... <servlet-mapping> <servlet-name>bonjour</servlet-name> <url-pattern>/bonjour</url-pattern> </servlet-mapping>... 5 Utilisation multiple du mapping avec <url-pattern> : à <url-pattern>/helloword</urlpattern> correspond : /helloworld. à <url-pattern>/foo/*</urlpattern> correspond : /foo/blah /foo/index à <url-pattern>*.jsp</urlpattern> correspond : tous les fichiers jsp. (cette servlet existe dans le serveur d application, c est la servlet qui gère les fichiers jsp!).
ISI 1022 : Descripteur de déploiement Autre descripteur de déploiement : Exemple avec W.T.E d IBM : <?xml version="1.0" encoding="iso-8859-1"?> <webapp> <servlet> <name>bonjour</name> <path>/bonjour</path> <code>appli.servlets.bonjour</code> <autostart>false</autostart> </servlet>... 6
ISI 1022 : Structure de répertoires Notre application Web est structurée en répertoires. Nous retrouverons dans ces répertoires toutes les composantes de l application : Les fichiers Web : html, javascript, jsp, shtml, Le descripteur de déploiement Le code des Servlets Le code métier de l application sous forme de classes ou de.jar 7
ISI 1022 : Structure de répertoires Répertoire Racine Index.html annonce.jsp Descripteur de déploiement : doit s appeler web.xml WEB-INF web.xml classes Doit être nommé classes. Contient les classes java de l application. Répertoire contenant WEB-INF ainsi qu une hiérarchie de fichiers Web. lib any.jar package sous-package X.class 8 Bien respecter les noms des répertoires imposés : WEB-INF, classes, lib.
ISI 1022 : Fichiers WAR Pour faciliter le déploiement, les applications Web peuvent être archivées en un unique fichier de type WAR : Même structure interne des répertoires que celle décrite précédemment (répertoire archivé). Le fichier portera l extension.war. Un.war n est en réalité qu un fichier.zip ou.jar Analogie au classes packagées dans un.jar 9
ISI 1022 : Création de fichiers WAR A l aide de l utilitaire jar du JDK : jar cvf../simpleapp.war * Options : c v f : créer un nouveau fichier jar. : affichage des commentaires : spécification du nom. La commande doit être exécutée à partir du répertoire racine de l application Web. 10
ISI 1022 : Déploiement de fichiers WAR Selon le conteneur d application (Serveur d application), les méthodes de déploiements peuvent aussi varier : Exemple avec le répertoire webapps de Tomcat : Chaque sous répertoire est une application Web. L application Web par défaut d appelle ROOT. Il suffit de copier le.war dans le répertoire webapps. Si aucun répertoire ne correspond au.war alors ce dernier est éclaté au démarrage. 11
ISI 1022 : Utilisation de Jakarta - Tomcat Tomcat est un serveur d application Web publique. C est avant tout un serveur HTTP Il peut héberger plusieurs applications. Toutes les applications sont lancées par la même JVM (Java Virtual Machine). Tomcat est un serveur implémenté en Java. Existe sous différentes plate-formes (Windows, Linux). Peut être téléchargé à l adresse : http://jakarta.apache.org 12
ISI 1022 : Utilisation de Tomcat Pour pouvoir utiliser Tomcat (sous winnt) : On doit installer une JVM qui va exécuter le serveur. Pour cela, on peut installer directement le JDK de Java (qui comprend les outils de développements ainsi qu une JVM Standard). Installer Tomcat Définir les points d entrés sous forme de variable d environnement : JAVA_HOME : répertoire ou est installé le JDK CATALINA_HOME : répertoire ou est installé Tomcat Lancer CATALINA_HOME\bin\startup.bat 13
ISI 1022 : Déployer une application Web sous Tomcat Pour déployer une application web : copier le répertoire de l application Web ou le fichier WAR dans : CATALINA_HOME/webapps/ On a une application par défaut comprenant un répertoire par défaut nommé : CATALINA_HOME/root/ 14
ISI 1022 : Tester une application Web sous Tomcat Au lancement, le serveur est à l écoute sur le port 8080 pour le protocole http. (configurable dans le fichier server.xml). On peut demander une ressource via un butineur sous forme d URL : http://adressemachine:8080/sousapp/ressource Pour tester, on peut commencer par demander des pages statiques (html,...). 15 Butineur est une autre façon d appeler un Web Browser ou Navigateur Web.
ISI 1022 : Exercice : Un bon entraînement : Déploiement de Tomcat sous Windows NT ou sous Linux : Le jdk et doc téléchargeables sous java.sun.com Tomcat et doc téléchargeables sous jakarta.apache.org Test d une application : avec InternetExplorer sous Windows on Konqueror sous Linux. 16