28. April 2013
von Ulrich Hilger
Tomcat ist eigentlich ein Applikationsserver. Dennoch muss man nicht auf Flexibilität verzichten oder zu anderen Produkten greifen, wenn man neben Webapplikationen auch statische Inhalte bereitstellen möchte, im Gegenteil. Tomcat eigenet sich sehr gut und einfach für die Ausgabe von z.B. Video- und Musikinhalten per Streaming.
Üblicherweise ist der ganze Inhalt, der über einen Tomcat-Server abrufbar ist, in einem bestimmten Verzeichnis des Rechners hinterlegt. Mit [CatalinaBase]/conf/server.xml
regelt eine einzelne Konfigurationsdatei, welchen Inhalt der Server verfügbar macht. Der Standardeintrag dort lautet
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
.. andere Konfigurationseinträge ..
</Host>
Im Attribut appBase ist ein relativer Verweis auf das Verzeichnis webapps eingetragen. Ist Tomcat z.B. im Verzeichnis /opt/tomcat7
des Rechners installiert, meint dieser Eintrag das Verzeichnis /opt/tomcat7/webapps
. Alles was sich dort befindet, wird vom Server auf Anfrage herausgegeben.
Wird nun am Server eine externe Festplatte mit Musik- und Videodaten angeschlossen, die der Server etwa über den Pfad /media/extplatte
einbindet, können die Media-Dateien der externen Platte direkt zum Streaming über HTTP genutzt werden. Es muss nur der folgenden Eintrag im Host-Element der Datei server.xml
hinzugefügt werden.
<Context path="/av" docBase="/media/extplatte"></Context>
Alles, was unter /media/extplatte
zu finden ist, wird anschließend über den URL http://localhost/av
aufrufbar. Findet sich vielleicht eine Musikdatei
/media/extplatte/musik/D/dideldumdei.mp3
auf der externen Platte, kann die Datei per Audiostreaming abgespielt werden, wenn man den URL
http://localhost/av/musik/D/dideldumdei.mp3
aufruft. Die Auslieferung erfolgt von Tomcat automatisch per Streaming über HTTP, indem die vorgenannte Konfiguration umgesetzt wird.
Tomcat muss neu gestartet werden damit ein Eintrag wie der oben beschriebene in der Datei server.xml
wirksam wird. Anstelle eines Eintrags in der Datei server.xml
kann ein Ablageort mit Inhalten auch ohne Neustart von Tomcat eingebunden werden. Hierzu wird im laufenden Betrieb einfach eine Datei in das Verzeichnis [CatalinaBase]/conf/Catalina/localhost
gelegt.
Um etwa die oben beschriebenen Konfiguration auf diese Weise herzustellen, würde man im Verzeichnis [CatalinaBase]/conf/Catalina/localhost
eine Datei namens av.xml
erstellen. Der Name der Datei ohne die Dateierweiterung .xml
bezeichnet dabei den Teil des URL, unter dem die Inhalte aufrufbar sein sollen. Die Datei muss folgenden Inhalt haben
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/media/extplatte" />
Sowie diese Datei am angegebenen Ort gespeichert wird, liefert Tomcat Inhalte aus dem in docBase
angegebenen Verzeichnis ganz ohne Neustart per HTTP aus.
Mit einem einfachen Eintrag in der Konfiguration lassen sich mit Tomcat beliebige statische Inhalte via HTTP bereitstellen. Ganz unabhängig von ihrem Typ lassen sich so z.B. HTML, XML oder Textinhalte ebenso wiedergeben wie Bilder, Musik oder Videos. Keine umständliche oder schwierige Programmierung, einfach die Funktion einschalten und der Streamingserver ist in Betrieb.
Die passende Bedienoberfläche kann dann ebenso einfach hinzugefügt werden, wenn man eine fertige Webanwendung wie das Mediacenter auf Tomcat installiert.