This page (revision-12) was last changed on 27-Dec-2008 14:53 by JensKapitza 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
12 27-Dec-2008 14:53 7 KB JensKapitza to previous encoding
11 23-Apr-2008 22:12 7 KB MarkusMonderkamp to previous | to last
10 23-Apr-2008 16:27 7 KB PeterHormanns to previous | to last
9 19-Feb-2008 21:09 7 KB PeterHormanns to previous | to last Kategorie raus
8 14-Feb-2008 10:38 7 KB MarkusMonderkamp to previous | to last Link von Klammer getrennt
7 16-Jan-2008 17:13 7 KB PeterHormanns to previous | to last Tagging
6 27-Oct-2007 17:53 7 KB ThomasBayen to previous | to last Installation unter Debian Etch
5 28-Mar-2007 17:43 6 KB PeterHormanns to previous | to last
4 16-Dec-2006 23:35 6 KB PeterHormanns to previous | to last KategorieTomcat
3 07-Dec-2006 11:17 6 KB PeterHormanns to previous | to last KategorieJava
2 13-Nov-2006 16:41 6 KB MarkusMonderkamp to previous | to last für JSPWiki mit Thomas' und Peter's Filter
1 03-Oct-2006 21:29 6 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

!!!Tomcat= Tomcat =>>

<<[Tomcat|http://tomcat.apache.org/]Tomcat>> <<( http://tomcat.apache.org/ ) >>ist eine <<"Servlet"servlet>> <<Engine",engine",>> d.h.
eine Art Webserver für Java-Klassen, der es enorm erleichtert,
Webservices aufzusetzen und allgemein zugängliche Dienste unter
Java anzubieten. In seiner Funktion ist er z.B. vergleichbar mit
einem mod_perl unter Apache (ohne dabei die Funktionsvielfalt und
Performance des Apache im Bereich des reinen Webservers erreichen
zu wollen).

Die Entwicklung von eigenen Applikationen haben wir auf der Seite
WebAnwendungenMitEclipse zusammengefasst.


<<!!Tomcat
=
>> <<Installation als Debian-Paket =

Zunächst muss ein Java JDK installiert sein. Das geht mit

 apt-get install j2sdk1.4

wie auf Seite JavaUnterDebian beschrieben.

Weiter geht's mit

 apt-get install tomcat4

oder mit

 apt-get install tomcat4 tomcat4-admin tomcat4-webapps

Die Webapps sind nur einige Beispiele, allerdings läuft die
Debian-Konfiguration nicht ohne dieses Paket. Das admin-Paket
installiert eine '''Manager''' und eine '''Admin'''-Applikation im
Tomcat. Hiermit kann man erstmal testen, ob der Tomcat läuft und
sich ein bisschen bekannt machen.

== Tomcat
>>5.5 mit Debian Etch<< ==>>

Wenn man Applikationen einspielen möchte, die mit einer neueren JVM von Sun erzeugt wurden (die also z.B. Java 5 oder 6 benutzen), rate ich dazu, den Tomcat auch mit derselben JVM laufen zu lassen. In meinem Falle die von Sun:

 aptitude install sun-java5-jdk
 aptitude install tomcat5.5 tomcat5.5-admin

<<Aus nicht ganz nachvollziehbaren Gründen war folgendes nötig:

 cd /usr/share/tomcat5.5/common/lib/
 ln -s ../../../java/commons-digester.jar .
 ln -s ../../../java/commons-beanutils.jar .

>>Nach dem Abschalten des Security Managers und dem Eintragen von Usern konnte ich dann auch die Manager- und Admin-Applikation zugreifen.

<<!!!Konfiguration==>> <<Konfiguration >>des Debian-Paketes<< ==>>

<<!Security===>> <<Security >>Manager<< ===>>

Das war einfach. Nun ist Debian eine besonders sichere
Distribution. Der Tomcat läuft per default mit eingeschaltetem
Security-Manager. Er darf fast nichts. Auf meinem Rechner im
lokalen Netz schalte ich den Security-Manager also zunächst mal
aus:

In der Datei <</etc/default/tomcat5.5/etc/default/tomcat4>> die Variable <<TOMCAT5_SECURITYTOMCAT4_SECURITY>> auf
"no" setzen und den Tomcat mit

 <</etc/init.d/tomcat5.5/etc/init.d/tomcat4>> restart

neu starten.

Um den Security Manager auf die richtige Art <<undundWeise>> <<Weise >>zu
besänftigen, muss man Zugriffrechte setzen. Dazu schreibt man in
die Datei <</etc/tomcat5.5/policy.d/50myapplication.policy/etc/tomcat4/policy.d/50myapplication.policy>> sowas wie
dieses:

<<<pre>>>
 grant {
    permission java.security.AllPermission;
 <<//>>   <<// >> permission java.net.SocketPermission "localhost",<<
>>"connect";
 };
<<</pre>>>

Dieses Beispiel schaltet jetzt ebenfalls die Sicherheit komplett
aus, ist aber als Ausgangspunkt für dediziertere Freigaben besser
geeignet. Prinzipiell kann man jeder einzelnen Klasse seines
Projektes eigene Fähigkeiten geben. So kann man z.B. Zugriffe auf
das normale Filesystem nur einer besonderen Zugriffsklasse
gewähren, die man dann besonders durch Sicherheitsabfragen
absichert.

<<!welches===>> <<welches >>Java Runtime Environment?<< ===>>

Man sollte übrigens - je nachdem, wie man Java installiert hat -
unbedingt in <</etc/default/tomcat5.5/etc/default/tomcat4>> das '''$JAVA_HOME''' auf das
gleiche setzen, das man auch bei der Entwicklung bzw. mit der
EclipseIDE benutzt, sonst können diffizile Unterschiede zwischen
den VMs oder den Bibliotheken auftreten (spätestens beim
Debugging). Unter Debian Etch wird das im Prinzip automatisch gemacht, <<
>>wenn man nicht mehrere JVMs parallel installiert hat.

Ich habe in <</var/lib/tomcat5.5/conf/tomcat-users.xml/var/lib/tomcat4/conf/tomcat-users.xml>> die Rollen
"manager" und "admin" und einen User mit diesen Rollen eingetragen, um Tomcat
per '''Manager'''-Webschnittstelle managen zu können (wenn man das
<<tomcat5.5-admin-Pakettomcat4-admin-Paket>> mitinstalliert hat). Interessant ist das auch,
da es damit auch möglich ist, Applikationen per Ant-Kommandos zu
installieren.


<<!!Tomcat
=
>> <<Tomcat >>pro User (Installation ohne Debian-Paket)<< =>>

Zur Zeit (August 2006) ist es so, daß der aktuelle Tomcat 5.5 als
Debian-Paket nicht zur Verfügung steht, also sollte man diese Form
der Installation erwägen. Normalerweise bin ich ein grosser Feind
davon, irgendwas in mein System zu lassen, was kein Debian-Paket
ist. Bei Java-Programmen sieht das jedoch sehr oft anders aus. Hier
zeigt sich, daß die Entwickler der Sprache mitgedacht haben. Der
Tomcat besteht aus einem einzelnen Verzeichnis und hat keine
weiteren externen Abhängigkeiten. Man entpackt also das von der
[http://tomcat.apache.org Tomcat Website] herunterladene Archiv in
ein Verzeichnis (z.B. in seinem eigenen Userverzeichnis) und
fertig! Keine Abhängigkeiten, keine Probleme mit Bibliotheken,
keine Schwierigkeit, das Ding wieder zu löschen.

Man kann den Tomcat nun starten, indem man in das Verzeichnis geht
und dann die <<''startup.sh'''''startup.sh''>> und ''shutdown.sh''-Skripte in
''bin/'' benutzt. Man kann aber auch ein besonderes
Konfigurationsverzeichnis erstellen:

Einen dermassen in ein Verzeichnis installierten Tomcat kann man
dann z.B. auch von der EclipseIDE aus benutzen (starten, stoppen,
Anwendungen installieren, etc.), wenn man WebAnwendungenMitEclipse
entwickelt.

Für einen Benutzer kann man leicht einen eigenen Tomcat
konfigurieren, indem man dem Benutzer folgende Verzeichnisstruktur
anlegt:
<<<pre>>>
<<
>>  tomcat
  +-bin--catalina.sh (Start-/Stop-Skript)
  +-conf
  |  +-server.xml (Server-Konfiguration)
  |  +-web.xml    (Server-Konfiguration, Standard-Servlets, z.B. JSP-Servlet)
  +-logs  (Hier landen die Log-Files)
  +-webapps
  |  +-ROOT
  |     +-WEB-INF
  |     |  +-web.xml (Konfiguration für die "Root-Applikation")
  |     |  +-classes
  |     |     +-TestServlet.class (Beispiel-Servlet)
  |     +-index.jsp (Beispiel-JSP)
  +-temp (Temp-Verzeichnis des Tomcat, bei mir bisher immer leer, aber in catalina.sh
  |       konfiguriert, deshalb habe ich es angelegt)
  +-work (Arbeitsverzeichnis für den Tomcat, hier landen z.B. die kompilierten JSPs)
<<</pre>>>

Wichtig ist, dass in der server.xml jeweils eigene Ports
konfiguriert sind!

<<Das=>> <<Start-SkriptDie>> <<catalina.shManager-Applikation>> <<könnte etwas so aussehen:=>>

<<  #!/bin/sh
 export CATALINA_HOME=/usr/share/tomcat5.5
 export CATALINA_BASE=/home/meinuser/tomcat
 export CATALINA_PID=/home/meinuser/tomcat/tomcat.pid
 export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
 export JAVA_OPTS="-Xmx512m $JAVA_OPTS"
 /usr/share/tomcat5.5/bin/catalina.sh $1 $2


Wenn man pro User-Tomcat auch ein eigenes common/classes und common/lib-Verzeichnis benötigt, kann man den Classloader über eine Datei "catalina.properties" konfigurieren:

 -Dcatalina.config=file:../conf/catalina.properties

in den JAVA_OPTS ergänzen und etwa das Folgende in die catalina.properties schreiben:
 package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
 package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.org.apache.tomcat.,org.apache.jasper.
 common.loader=${catalina.base}/common/lib/*.jar,${catalina.home}/common/classes,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar
 server.loader=${catalina.base}/server/lib/*.jar;${catalina.home}/server/classes,${catalina.home}/server/lib/*.jar
 shared.loader=${catalina.base}/shared/lib/*.jar



!!Die Manager-Applikation

>>Normalerweise installiere ich die Manager- und die
Admin-Applikationen bei einem produktiven Tomcat nicht. Warum soll
man sich potentielle Sicherheitlücken einhandeln? Aber bei einem
Entwickler-Tomcat macht es durchaus Sinn, über die
Manager-Applikationen Anwendungen zu installieren und zu
rekonfigurieren.

<<!!Tomcat-Benutzer==>> <<Tomcat-Benutzer ==>>

Wenn man das Paket '''tomcat4-admin''' mitinstalliert hat, kann man
sich über die Weboberfläche als Admin einloggen und dann einige
Dinge machen wie z.B. Applikationen de-/installieren. Hierzu muss
man die Benutzerdatenbank einrichten. In der Standardinstallation
ist diese eine einfache Textdatei in
'''/var/lib/tomcat4/conf/tomcat-users.xml'''. Dort muss man eine
Rolle "manager" und einen User (z.B. admin) einfügen, der diese
Rolle ausfüllt.

<<!!Tipps=>> <<Tipps >>und Tricks<< =>>

<<*Man*>> <<Man >>kann Datenbankverbindungen per JNDI zentral im Tomcat statt in den einzelnen Servlets verwalten: TomcatJNDI.
<<*TomcatServletTutorial*>> <<TomcatServletTutorial >>- kurze Einführung in eigene Servlets
<<*TomcatSSL*>> <<TomcatSSL >>Zertifikat erzeugen
<<*WebAnwendungenMitEclipse* <<WebAnwendungenMitEclipse - eigene Applikationen erzeugen

[{Tag Java Tomcat Debian}]