Kontexte und ihr  Deployment
Themenübersicht "Kontexte und ihr Deployment"               Kontexte repräsentieren eine bereitgestellte Anwendung        ...
Kontexte               Context = Tomcat-Web-Anwendung inclusive Metadaten               Jeder Context besitzt einen Descri...
Allgemeine Attribute eines Contexts               Die Attribute des <Context>-Elements:                • Aufrufe auf den C...
Weitere Attribute der Standard-Implementation               Die Attribute der Standard-Kontext-Implementation:            ...
Weitere Attribute der Standard-Implementation               Die Attribute der Standard-Kontext-Implementation:            ...
Typische kontextbezogene Einstellungen               Access-Logs = zeilenweise organisierter Log-File:                • Ka...
Kontexte verwenden Ressourcen               Ressourcen = technische Elemente des Servers:                • Anwendungen kön...
Typische kontextbezogene Einstellungen               JNDI-Init-Parameter = Startwerte im lokalen Komponenten-JNDI:        ...
Allgemeines zum Thema Deployment               Deployment = Installation einer Web-Anwendung:                • Tomcat akze...
Deployment-Einstellungen eines Hosts               Ein Deployment kopiert WAR-Dateien in den Host-"appBase":              ...
Statisches Deployment               Statisches Deployment =               Installation von Anwendungen vor dem Server-Star...
Dynamisches Deployment               Dynamisches Deployment =               Installation von Anwendungen bei laufendem Ser...
Weitere Valves               Valves wirken wie Servlet-Filter               auf Engine-, Host- oder Context-              ...
URL-Parsing – wo konfiguriert man was?Präsentation "Apache Tomcat 6/7 Administration"     © Oliver P. Schell 2011   www.sc...
Upcoming SlideShare
Loading in …5
×

Auszug Seminarunterlagen "Tomcat 6.x"

3,533 views
3,486 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,533
On SlideShare
0
From Embeds
0
Number of Embeds
2,364
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Auszug Seminarunterlagen "Tomcat 6.x"

  1. 1. Kontexte und ihr Deployment
  2. 2. Themenübersicht "Kontexte und ihr Deployment" Kontexte repräsentieren eine bereitgestellte Anwendung Jeder Kontext besitzt einen XML-Descriptor mit Einstellungen Tomcat nutzt ausschl. interne Kopien dieser Kontext-Descriptoren! Vor dem Deployment müssen alle Ressourcen bereitstehen Tomcat erlaubt Archiv- und Exploded-Contexte Tomcat erlaubt statisches und dynamisches Deployment Die Tools für das Deployment sind vielfältig: ANT, Maven, Manager-Anwendung, Tomcat-Client-Deployer Hosts ermöglichen Deployment-bezogene Einstellungen Valves bieten standardisierte technische Aspekt-FunktionalitätPräsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 25
  3. 3. Kontexte Context = Tomcat-Web-Anwendung inclusive Metadaten Jeder Context besitzt einen Descriptor: • XML-File mit Tomcat-spezifischen Konfigurationen der Applikation • Falls der Context-Descriptor fehlt, verwendet Tomcat Standard-Einstellungen • Frühere Tomcat-Versionen integrierten den Descriptor in die "$CATALINA_BASE/conf/ server.xml" (dies ist nun "discouraged", funktioniert jedoch noch immer!) Die Locations für Context-Descriptoren sind vielseitig: • In einem <Host>-Element der "$CATALINA_BASE/conf/server.xml" • Standard-Settings für alle Anwendungen in "$CATALINA_BASE/conf/context.xml" • Standard-Settings für alle Anwendungen eines Hosts in "$CATALINA_BASE/conf/ [enginename]/[hostname]/context.xml.default" • Standard-Settings für eine Anwendung eines Hosts in "$CATALINA_BASE/conf/[enginename]/ [hostname]/[webappname].xml" • Settings, die in die Anwendung verpackt wurden: "$CATALINA_BASE/webapps/[webappname]/META-INF/context.xml"Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 26
  4. 4. Allgemeine Attribute eines Contexts Die Attribute des <Context>-Elements: • Aufrufe auf den Context für Monitorings um n Sekunden verzögern? • backgroundProcessorDelay (-1) • Die Implementationsklasse: • className (org.apache.catalina.core.StandardContext) • Soll der Server Session-IDs per Cookie versenden? • cookies (true) • Darf "context.getContext( String )" einen Request-Dispatcher zu allen Anwendungen dieses Virtual-Hosts liefern? • crossContext (false) • Pfad zu Dateien der Anwendung, relativ zur "appBase" des Virtual-Hosts: (nicht notwendig im Falle einer "META-INF/context.xml") • docBase (WAR-Ordner/-File) • Dürfen Einstellungen des Standard-Context überschrieben werden? • override (false) • Container-Servlets und somit seinen Class-Loader zu benutzen: • privileged (false) • Redeployment bei Änderungen an Class- oder JAR-Files? • reloadable (false) • Session-Cookies nur auf HTTP-Verbindungen verwenden: • useHttpOnlyPräsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 27
  5. 5. Weitere Attribute der Standard-Implementation Die Attribute der Standard-Kontext-Implementation: • Erlaubt Verknüpfungen aus dem Projekt zu externen Ressourcen:* • allowLinking (false) • Verhindert das Sperren von JARs (weniger performant): • antiJARLocking (false) • Verhindert das Sperren von Ressourcen (weniger performant): • antiResourceLocking (false) • Größe des Cache für statische Ressourcen in KB: • cacheMaxSize (10240) • Maximale Größe für statische Ressourcen im Cache in KB: • cacheObjectMaxSize (512) • Intervall zur Revalidierung der Cache-Inhalte in Millisekunden: • cacheTTL (5000) • (De)Aktiviert das Caching statischer Ressourcen: • cachingAllowed (true) • (De)Aktiviert die Case-Sensitivity für Dateinamen:* • caseSensitive (true) •* Änderung verursacht Sicherheitsprobleme auf Betriebssystemen, die keine case-sensitiven Dateinamen unterstützen!Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 28
  6. 6. Weitere Attribute der Standard-Implementation Die Attribute der Standard-Kontext-Implementation: • Sollen TLDs bei Anwendungsstart verarbeitet werden? • processTLDs (true) • Leitet Ausgaben auf System.out / System.err an den Context-Logger: • swallowOutput (false) • TLD-Prüfung Namespace-Aware setzen (weniger performant): • tldNamespaceAware (false) • Sollen TLDs bei Anwendungsstart validiert werden? • tldValidation (false) • Timeout für die Destroy-Phase von Servlets: • unloadDelay (false) • (De)Aktiviert das Entpacken von WARs: • unpackWAR (true) • (De)Aktiviert den lokalen JNDI-Tree der Komponente: • useNaming (true) • Pfad zu dem temporären Arbeitsverzeichnis: • workDir ("$CATALINA_BASE/work")Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 29
  7. 7. Typische kontextbezogene Einstellungen Access-Logs = zeilenweise organisierter Log-File: • Kann per Valve auf Ebene von Engines, Hosts oder Contexten erzeugt werden: • <Context …> <Valve className="org.apache.catalina.valves.AccessLogValve" prefix="localhost_access_log." suffix=".txt" pattern="common"/> </Context> Context-Init-Parameter = Startwerte für den Servlet-Context: • Üblicherweise werden diese Werte in der "WEB-INF/web.xml" angelegt: • <context-param> <param-name>companyName</param-name> <param-value>My Company, Incorporated</param-value> </context-param> • Alternative in "META-INF/context.xml": (override erlaubt das Überschreiben gleichnamiger "web.xml"-Parameter) • <Context …> <Parameter name="companyName" value="My Company, Incorporated" override="false"/> </Context>Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 30
  8. 8. Kontexte verwenden Ressourcen Ressourcen = technische Elemente des Servers: • Anwendungen können von Ressourcen abhängen: (z.B. Data-Sources, JMS-Destinations, EJB-Proxies, !) ENC = Enterprise-Naming-Context: • Virtueller Namensdienst einer Komponente: • Der ENC wird über die Context-Konfiguration aufgebaut: • <Context …> <Resource … /> <ResourceLink … /> <Ejb … /> </Context> Bibliotheken = JAR-Archive mit darin enthaltenen Java-Klassen: • Enthalten z.B. die Unterstützung für Struts, JSF, JDBC-Driver, ! • Werden als Archive in "$CATALINA/lib" kopiert • Alternativ kann auch "$CATALINA/bin/setclasspath.bat" editiert werden: • set CLASSPATH=%JAVA_HOME%libtools.jar;libsmyLib.jarPräsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 31
  9. 9. Typische kontextbezogene Einstellungen JNDI-Init-Parameter = Startwerte im lokalen Komponenten-JNDI: • Üblicherweise werden diese Werte in der "WEB-INF/web.xml" angelegt: • <env-entry> <env-entry-name>maxExemptions</param-name> <env-entry-value>10</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry> • Alternative in "META-INF/context.xml": • <Context …> <Environment name="maxExemptions" value="10" type="java.lang.Integer" override="false"/> </Context> Lifecycle-Listener = Objekte, die den Context beobachten: • Üblicherweise werden diese Objekte in der "WEB-INF/web.xml" angelegt: • <listener> <listener-class>mycompany.mypackage.MyListener</listener-class> </listener> • Für Tomcat muss "org.apache.catalina.LifecycleListener" implementiert werden: • <Context …> <Listener className="mycompany.mypackage.MyListener" …> </Context>Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 32
  10. 10. Allgemeines zum Thema Deployment Deployment = Installation einer Web-Anwendung: • Tomcat akzeptiert archivförmige und "explodierte" WAR-Komponenten Tomcat unterstützt 2 Deployment-Varianten: • Statisches Deployment " Applikation wird vor Tomcat-Start installiert • Dynamisches Deployment " Applikation wird zur Laufzeit (re-)installiert Tools zur Durchführung des Deployments: • Kopiervorgang im OS • Tomcat-Tasks für Build-Tools wie ANT oder Maven • Tomcat-Manager Web-Application • Monitoring-Tools wie Jopr oder Hyperic-HQ Bitte beachten Sie: • Tomcat besitzt einen dynamischen Client-Deployer (TCD) mit weiteren Features (z.B. Kompilieren, Validieren und Packaging von Web-Anwendungen) • TCD ist nicht in Tomcat enthalten und muss separat heruntergeladen werden • Eine Kurzanleitung findet sich im Administration Guide, Kapitel 4Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 33
  11. 11. Deployment-Einstellungen eines Hosts Ein Deployment kopiert WAR-Dateien in den Host-"appBase": • Dieser besitzt daher eine Reihe von Deployment-Settings: • <Host appBase autoDeploy className deployOnStartup /> Wichtige Attribute des Application-Deployers im Host: • Name dieses Hosts: • name (localhost) • Anwendungsverzeichnis dieses Hosts: • appBase ($CATALINA_BASE/webapps) • Deployt Anwendungen beim Startup: • deployOnStartup (true) • (De)Aktiviert das automatische Verarbeiten der "META-INF/context.xml": • deployXML (true) • (De)Aktiviert das automatische Entpacken von WARs: • unpackWARs (true) • Bestimmt das temporäre Arbeitsverzeichnis des Host: • workDir ($CATALINA_BASE/work)Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 34
  12. 12. Statisches Deployment Statisches Deployment = Installation von Anwendungen vor dem Server-Start Statisches Deployment wird in folgender Reihenfolge abgearbeitet: • Alle Standard-Context-Descriptoren werden deployt • Explodierte Web-Applications werden deployt (sollte ein WAR-File neueren Datums existieren, so wird es entpackt) • WAR-Files werden deployt ACHTUNG FALLE! Bitte beachten Sie: • Sollte kein Context-Descriptor beigefügt sein, so werden Defaults genutzt • Context-Descriptoren werden nach "$CATALINA_BASE/conf/[enginename]/[hostname]/ [webappname].xml" kopiert • Das Copy-Feature funktioniert manchmal nicht (alte [webappname].xml bleibt im conf-Ordner stehen – ärgerlich!)Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 35
  13. 13. Dynamisches Deployment Dynamisches Deployment = Installation von Anwendungen bei laufendem Server Insbesondere sind folgende Aktionen erlaubt: • (Re-)Deployment von WAR-Files durch Kopieren ins "appBase" • (Re-)Deployment von explodierten Applikationen durch Kopieren ins "appBase" • (Re-)Deployment einer Applikation durch Änderung der "/WEB-INF/web.xml" (oder Änderung jeder anderen "WatchedResource") • (Re-)Deployment einer Applikation durch Änderung der "/META-INF/context.xml" • (Re-)Deployment einer Applikation durch Hinzufügen einer "context.xml" in "$CATALINA_BASE/conf/[enginename]/[hostname]/" • Undeployment einer Applikation, wenn ihr "docBase" gelöscht wird Bitte beachten Sie: • Undeployments unter Windows erfordern Anti-Locking-Settings im <Context> • Das Application-Reloading kann jeweils über den <Loader> eines <Context> in der "context.xml" konfiguriert werdenPräsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 36
  14. 14. Weitere Valves Valves wirken wie Servlet-Filter auf Engine-, Host- oder Context- Ebene: • Sie sind kein Bestandteil der Java-EE! Tomcat besitzt einige vordefinierte Valve-Klassen: • Loggt Debug-Informationen über Requests: • org.apache.catalina.valves.RequestDumperValve • Loggt Zugriffe von Clients in flexiblem Format: • org.apache.catalina.valves.AccessLogValve • Loggt Zugriffe von Clients im Kurzformat für Produktivsysteme: • org.apache.catalina.valves.FastCommonAccessLogValve • Filtert Requests auf Basis der Client-IP oder des Client-Hosts: • org.apache.catalina.valves.RemoteAddrValve • org.apache.catalina.valves.RemoteHostValve • Signt einen Client auf alle anderen Applikationen eines Hosts: • org.apache.catalina.authenticator.SingleSignOn •!Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 37
  15. 15. URL-Parsing – wo konfiguriert man was?Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 38

×