Neuerungen des Tomcat7

Apache Tomcat 7

Servlet API 3.0 Support (JSR 315)

(7.0.6 Release)

Vortragender: Peter Roßbach

http://tomcat.objektpark.org

Committer seit 2005

Amazon nutzt Tomcat6 als Grundlage für Cloud Computing

Standard Taglib Projekt (JSTL) ist nun Teilprojekt des Apache Tomcat Projekjts

http://tomcat.apache.org/taglibs/

  • Mitwirkende: 24 Entwickler, 94 Referenzunternehmen, 32 Hostingprovider

Architektur im Wesentlichen gleich

Läuft ab Java 1.6 (JSP 2.2, Servlet 3.0)

Servlet API 3.0

  • Programmierung mit Annotationen
  • Modularität (Web-Fragmente, Ressourcen)
  • Asynchrone Kommunikation** Server Push
    • Entkoppelung vom Container Thread
  • File Upload direkt im Container
  • Session und Cookie Handling verbessert
  • Programmatische und modulare Erweiterbarkeit

Apache Tomcat 7 Basis

  • Neues Lifecycle API der Komponenten (JMX Update)
  • Alle Connectoren haben Async Support
  • Connectoren nutzen nun die Executor ThreadPools
  • MemoryLeakDetection für Anwendungsredeployment
  • Deployment von Anwendungsversionen
  • Einige Packages sind verschoben
  • CRSR Prevention Filter (s. Manager Anwendung)
  • Module für eigenen JDBC Pool und Bayeux Implementierung
  • Embedded und Unit testen mit Tomcat** Org.apache.catalina.startup.TomcatBaseTest
    • Org.apache.catalina.startup.Tomcat

-neuer StartScreen

  • Annotation Overwrite (web.xml überschreibt Code)
  • Web.xml: <metadata-complete>false</metadata-complete> erlaubt Annotations, true stellt sie ab
  • Resource Loading (*.jar!META-INF/resources )
  • Aliase und VirtualClassPath möglich (Module außerhalb der WebApp)
  • Web-Plugins** Beim Undeploy der Anwendung bleiben die Plugins erhalten
    • Integration von Ressourcen und Funktionserweiterungen
  • Ladereihenfolge** Web.xml (Tomcat lädt noch conf/web.xml)
    • Dann Web-Fragmente.xml
    • Auswewrtung der Annotations
    • Evtl. ServletContainerInitializer auswerten
    • ServletContextListener
  • Konflikte** Durchführung eines großen Merge
    • Bei Konflikten gewinnt der Eintrag in der web.xml
  • Inhalt der servlet.xml hat sich sehr verändert

Async Servlet

  • Asynchrone WebServices und Web Proxiews
  • Server Side AJAX Push per Comet
  • non-blocking Verhalten des Containers bei langen Requests ermöglichen
  • Entkoppelung des Container Requests Threads
  • Warum?** Problem mit der Rückwärtskompatibilität
  • Timeout: Default= 10 Sekunden** Änderung über server.xml: <Connector asyncTimeout="3000"…
  • File Upload

Memory Leaks

  • Thread Leaks** <context renewThreadsWhenStopping Context="true" …>
  • Seit Tomcat6 gibt es Versionierung z.B.
  • Context Path  Version    Verisonsname

/foo                    42         /foo##42

/foo                   43          /foo##43

Realm

  • Login Brute-Force Attack-Schutz** 5 Versuche
    • 5 Minuten Sperren
    • Speicherung von 100 Vorfällen
  • Parameter änderbar

Eigene Fragen:

Clustering / Synchronisation

  • Bugs gefixt
  • Cluster läuft stabil
  • Keine Probleme gemeldet
  • Keine großartigen Neuerungen

Eigene Fragen: