TomCat M2 – MIAGE/SID [email protected] Sommaire • Applications distribuées et web • Tomcat • Environnement de développement Miage SID 2 Genèse Application informatique Miage SID 3 Genèse Composant … Composant Miage SID 4 Genèse Présentation Logique applicative Accès aux données Miage SID 5 Client/Serveur Présentation Données Logique applicative Serveur Client Miage SID 6 n-tier Présentation Client Logique applicative Serveur Miage SID Données Serveur 7 Web dynamique Navigateur Web Client Logique applicative Serveur Miage SID Données Serveur 8 Caractéristiques d’un client web • Navigateur : client • HTML (+JavaScript, +DHTML, XML/XSL) = moyen de définir l’interface utilisateur • HTTP = moyen d’échange d’information entre le client et le serveur Miage SID 9 Web dynamique • CGI : Common Gateway Interface – Interface entre le système d’exploitation du serveur et le serveur Web – Programmation en C, Python, Perl… • PHP : Hypertext Preprocessor – Interpréteur intégré au serveur Web – Langage dédié • ASP : Active Server Page (Microsoft) • J2EE: Solution JAVA Miage SID 10 Solution JAVA • • • • J2EE: Java 2 Enterprise Edition Renommé Java EE 5 Sun MicroSystem Definit un standard unifié pour le développement de composants applicatifs • Fournit un ensemble minimal d’API Miage SID 11 Serveur J2EE Conteneur EJB Conteneur WEB Servlets EJB Pages JSP JAAS JMS JavaMail JDBC JTA JNDI RMI/IIOP JAAS JMS JavaMail JDBC JTA JNDI RMI/IIOP Miage SID 12 Conteneurs WEB • • • • • • • Jakarta Tomcat Jetty (intégré à JBoss et à JOnAS) Caucho Resin BEA WebLogic IBM WebSphere Macromedia JRUN Oracle Application Server… Miage SID 13 TomCat • Conteneur de Servlets et JSP conforme à J2EE • Apache Software Fondation (libre) • Intègre un serveur HTTP • Le plus courant des gratuits • Configuration pour « spécialiste » Miage SID 14 Exercice • Installation d’un serveur Tomcat • Mise en place d’un environnement de développement – (Java ) – Tomcat – Eclipse Miage SID 15 Download Tomcat • http://tomcat.apache.org/ – Installateur windows – Distribution « normale » – Déployeur Miage SID 16 Installation du serveur de déploiement (service Windows) Miage SID 18 Miage SID 19 Miage SID 20 Miage SID 21 Miage SID 22 Miage SID 23 Miage SID 24 Test du serveur Miage SID 26 Miage SID 27 Miage SID 28 Installation du serveur de développement pour un usage local Install • Décompresser la dist « normale » dans le répertoire d’installation – Exemple c:\ • (pas besoin d’un service windows) Miage SID 30 Arborescence • Bin : scripts et éxécutables • Conf : – – – – Server.xml : port principal (80), ports de monitoring… Context.xml : applications disponibles Tomcat-users.xml : utilisateurs et droits associés Web.xml : propriétés par défaut • Lib : – Librairies de Tomcat et communes aux applications • Logs – Journaux • Webapps – Dossiers pour chaque application • Work – Espace de travail interne Miage SID 31 Configuration Restrictions • Pas de service Windows – Démarrage à partir de l’IDE • Port standard (80) • Pas d’obligation de faire un mapping dans un fichier web.xml • Redémarrage automatique en cas de modification des *-config.xml Miage SID 33 server.xml <!-- A "Connector" represents an endpoint by which requests … Miage : changement du port en 80 pour le développement --> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> Miage SID 34 web.xml <!-- Miage : autoriser le listage des dir … <servlet> --> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> Miage SID 35 web.xml <!— <servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> --> Miage SID 36 web.xml <!— <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> --> Miage SID 37 context.xml <Context reloadable="true" privileged="true"> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource> WEB-INF/struts-config.xml </WatchedResource> <WatchedResource> WEB-INF/faces-config.xml </WatchedResource> … Miage SID 38 Download Eclipse • http://www.eclipse.org/downloads/moreinfo/jee.php – Eclipse IDE for Java EE Developers – Contient les plugins adéquats Miage SID 39 Install • Décompresser la dist dans le répertoire d’installation – Exemple c:\ Miage SID 40 Configurer le serveur de développement • Démarrer Eclipse • Onglet Servers (menu contextuel): – > New > Server… • Recopier les fichiers : – context.xml, – server.xml, – web.xml à partir des originaux de <Tomcat>/conf Miage SID 41 Test • Site de téléchargement : – http://www.coreservlets.com/Apache-TomcatTutorial/tomcat6.0-files/intro-app-eclipse.zip – Ou intro-app-eclipse.zip • Démarrer Eclipse : – File>Import>General>Archive… • Ajouter l’application intro au serveur – Onglet Servers>Tomcat…>Menu contextuel>Add an remove project • Démarrer le serveur – Onglet Servers>Tomcat…>Menu contextuel> • Tester à partir d’un navigateur – http://localhost/intro/Hello.jsp Miage SID 42 Déploiement • Le déploiement consiste à transférer l’application vers le serveur TomCat d’exploitation • Solution simple : recopier le contenu de WebContent dans : – <TomCat>/webapps/<context> • NB: généralement, on ne déploie pas les sources • Solution alternative : compresser et archiver le contenu de WebContent avant la recopie • Solution à distance : utiliser le deployeur (ant) Miage SID 43 Exercice • Déployer l’application intro Miage SID 44 Miage SID 45 Miage SID 46 Miage SID 47