Your SlideShare is downloading. ×
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Auszug Seminarunterlagen "Tomcat 6.x"

2,612

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
2,612
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Kontexte und ihr Deployment
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. URL-Parsing – wo konfiguriert man was?Präsentation "Apache Tomcat 6/7 Administration" © Oliver P. Schell 2011 www.schellsoft.de 38

×