Apache [Tomcat] ist ein [Java] Application-Server, der leichtgewichtig und leistungsvoll ist. !!!Windows Service Wurde [Tomcat] als Windows Service installiert, können die Parameter im Nachhinein verändert werden mit dem GUI-Programm tomcat7w.exe. !!!Server-Configuration Dafür ist die Datei server.xml zuständig. Diese ist durch die eingebaute "Anleitung" etwas unübersichtlich, eine einfach Version ist hier: !!Tomcat 7 {{{ <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off"/> <Listener className="org.apache.catalina.core.JasperListener"/> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"/> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_" suffix=".log" pattern="%h %l %u %t "%r" %s %b"/> </Host> </Engine> </Service> </Server> }}} !!Tomcat 8 {{{ <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <!-- <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> --> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off"/> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"/> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_" suffix=".log" pattern="%h %l %u %t "%r" %s %b"/> </Host> </Engine> </Service> </Server> }}} !!!Debugging Der Server kann statt mit "catalina start" mit {{{ catalina jpda start }}} gestartet werden, dann wird auf Port 8000 das Java-Debugging akzeptiert. Der Server kann auch beim Start auf Suspend geschaltet werden, damit er auf den Debugger wartet, wenn man die Environment-Variable mit {{{ set JPDA_SUSPEND=y }}} setzt. !!!URL Encoding Per Default macht codiert und decodiert Tomcat URLs nicht in UTF-8, daher kann es Probleme mit Umlauten geben. Das kann man korrigieren, indem man dem Connector das Encoding hinzufügt mit dem Attribut URIEncoding="UTF-8". !!!Windows Service Der Service kann mit "service install" installiert werden. Dabei brauchen zunächst keine Parameter angegeben werden, da diese im zweiten Schritt eingegeben werden. Der Service mit tomcat7w.exe bzw. tomcat8w.exe eingestellt werden. Wurde der Service unter einem anderen Namen installiert, kann er durch tomcat7w //ES//<service-name> geändert werden.