Advanced  Services Jetty Back Next Up Home


Jetty

Jetty ist ein kleiner, aber leistungsfähiger Webserver, der vollständig in Java geschrieben ist. Ursprünglich entwickelt von Codehaus (jetty.codehaus.org/jetty/) hat mittlerweile Eclipse (www.eclipse.org/jetty/) die weitere Entwicklung übernommen. Wie Tomcat verfügt Jetty über einen Servletcontainer. Eine ganze Reihe von Firmen setzen Jetty professionell ein. Auf docs.codehaus.org/display/JETTY/Jetty+Powered findet man eine Übersicht über Firmen die Jetty verwenden.


Download der Dateien

Der Link www.eclipse.org/jetty/downloads.php führt zur Übersichtsseite. Von hier aus führt Jetty Downloads direkt zu den Dateien. Zur Zeit (Januar 2013) ist Jetty 8 (jetty-distribution-8.1.8.v20121106.tar.gz) die aktuelle Version, Jetty 9 befindet sich aber bereits im Stadium M3.


Installation

Die folgenden Angaben beziehen sich auf folgende Umgebung: Windows XP (alle Updates), Jetty 8, Java 7 (JDK und JRE).

Installation heißt hier nur Entpacken. Welches Verzeichnis man dabei wählt ist egal, hier hat man die freie Wahl.


Konfigurationsdateien
$JETTY_HOME/start.ini (Startparameter eintragen)
$JETTY_HOME/etc/webdefault.xml (JSP Servlet konfigurieren)
$JETTY_HOME/etc/jetty.xml (Server konfigurieren)

Ändern des Ports

Wie Tomcat, Glassfish und JBoss belegt auch Jetty den Port 8080. Hat man mehrere Webserver zu Testzwecken installiert, so muß man den Port ändern. Dazu öffnet man die Datei jetty.xml in $JETTY_HOME/etc/ und ändert im folgenden Abschnitt die rote Zeile entsprechend ab. Da als https-Port gerne 8443 gewählt wird empfiehlt es sich, auch diesen Port zu ändern.

<!-- =========================================================== -->
<!-- Set connectors                                              -->
<!-- =========================================================== -->

<Call name="addConnector">
<Arg>
    <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
      <Set name="host"><Property name="jetty.host" /></Set>
      <Set name="port"><Property name="jetty.port" default="8080"/></Set>
      <Set name="maxIdleTime">300000</Set>
      <Set name="Acceptors">2</Set>
      <Set name="statsOn">false</Set>
      <Set name="confidentialPort">8443</Set>
 <Set name="lowResourcesConnections">20000</Set>
 <Set name="lowResourcesMaxIdleTime">5000</Set>
    </New>
</Arg>
</Call>

Starten und Beenden von Jetty

Im Verzeichnis $JETTY_HOME/ befindet sich die Datei start.jar. Öffnet man ein Konsolfenster und wechselt in das Verzeichnis und gibt java -jar start.jar ein, so startet Jetty. das Konsolfenster bleibt nach dem Start geöffnet und wartet auf weitere Eingaben. Durch Eingabe von Ctrl c kann man Jetty wieder beenden.




Starten von Java Server Pages (Jetty 8)

Beim Starten der mitgelieferten Java Server Pages

jetty-jsp-examples.jpg

kann es zu folgender Fehlermeldung kommen.

PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required

Diese Fehlermeldung ist irreführend. Es reicht auch wenn $JAVAHOME auf eine JRE zeigt.

Lösung:

Im Rootverzeichnis von Jetty in der Datei start.ini die folgende Zeile ergänzen.

-Dorg.apache.jasper.compiler.disablejsr199=true

JSR 199 realisiert eine "service provider API that allows a Java program to select and invoke a Java Language Compiler programmatically". Diese Option ist per default eingeschaltet, aber der zugehörige Java Compiler wird nicht gefunden. Deaktiviert man diese Option so wird der Compiler des installierten JDK problemlos gefunden und die JSP's können übersetzt werden (auch mit Java 7 !).

Siehe: wiki.eclipse.org/Jetty/Howto/Configure_JSP


Eine Webapplikation deployen

Man legt eine war-Datei einfach ins Verzeichnis $JettyHome/webapps. Jetty erkennt das neue war-File. Ein Servlet ist dann unter dem Namen des war-Files und dem in der web.xml angegebenen Urlpattern erreichbar.

Valid XHTML 1.0 Strict top Back Next Up Home