Hinzufügen eines Serverkontexts

Ein Kontext bezeichnet einen Teilbereich innerhalb des HTTP-Servers, dem Webapplikationen, Servlets oder andere Elemente hinzugefügt werden können, die dann bei Anfragen entsprechend aufgerufen werden. Folgendes XML-Fragment richtet einen Kontext ein.


<Call name="addContext">
<Arg>
<New class="com.ebd.hub.xml.NullClass"/>
</Arg>
<Arg>/service/*</Arg>
[Kontextspezifische Aufrufe und Definitionen]
</Call>


Der erste Parameter erlaubt es, einen virtuellen Host zu bezeichnen, für den der Kontext ausschließlich gelten soll. Ist keine Einschränkung auf einen bestimmten virtuellen Host vorgesehen, ist die Angabe von Null notwendig, wie aus dem oben gezeigten XML-Code zu ersehen ist.

Der zweite Parameter bezeichnet den Namen des Kontexts, wie er in der URL auftauchen soll.

URLs, die den Kontext wie oben definiert ansprechen, hätten hierbei den folgenden Aufbau.


http://<meinserver>/service/...


Die Aufrufe und Definitionen, die nach dem Hinzufügen eines Kontexts möglich sind, sind sehr zahlreich. Daher seien hier nur die für den Betrieb des Integration Servers wichtigsten Bereiche beschrieben.

Setzen der Ressourcen-Basis


Soll ein anderes als das Arbeitsverzeichnis für das Beziehen von Ressourcen innerhalb eines Kontexts verwendet werden, kann dies mit folgendem XML-Fragment eingestellt werden.


<Set name="ResourceBase">./myotherdir</Set>


Das Verzeichnis kann relativ zum Arbeitsverzeichnis des Integration Servers oder absolut angegeben werden.

Hinzufügen eines Ressourcen-Handlers zu einem Kontext


Ein Ressourcen-Handler ist für das Ausliefern von Ressourcen, d .h. HTML-Seiten, Bildern, usw. zuständig. Ohne einen hinzugefügten Ressourcen-Handler ist kein Ausliefern von statischen Elementen möglich.

Folgendes XML-Fragment fügt dem Kontext einen Ressourcehandler hinzu.


<Call name="addHandler">
<Arg>
<New class="com.ebd.hub.server.http.handler.ResourceHandler"/>
</Arg>
</Call>


Sinnvollerweise sollte vor dem Setzen eines Ressourcen-Handlers eine passende Ressourcen-Basis definiert worden sein.

Hinzufügen eines Servlets zu einem Kontext


Folgendes XML-Fragment fügt dem aktuellen Kontext ein Servlet hinzu.


<Call name="addServlet">
<Arg>Servletname</Arg>
<Arg>/ServletContext/*</Arg>
<Arg>com.ebd.dummy.servlet.MySpecialServlet</Arg>
</Call>


Hierbei ist Servletname der Name des Servlets, wie er z. B. im Informationsbereich erscheinen soll.

ServletContext ist der Kontext, in dem das Servlet angeboten werden soll. Dieser wird dem Kontext (hier service), dem das Servlet hinzugefügt wird, angefügt.

Der dritte Parameter bezeichnet den voll qualizierten Klassennamen des Servlets.

URLs, die das Servlet, wie oben definiert, ansprechen, hätten mit den oben angegebenen Werten den folgenden Aufbau.


http://<meinserver>/service/ServletContext/path/info?key1=val1

Aktivieren einer Benutzer-Authentifizierung


Für die Aktivierung einer Benutzerauthentifizierung ist es notwendig, zuvor eine Realm-Definition hinzugefügt zu haben.

Folgendes XML-Fragment aktiviert die HTTP-Basic-Authentication für den gewählten Kontext.


<Set name="realmName">Admin Realm</Set>
<Set name="authenticator">
<New class="com.ebd.hub.server.http.BasicAuthenticator"/>
</Set>
<Call name="addHandler">
<Arg>
<New class="com.ebd.hub.server.http.handler.SecurityHandler"/>
</Arg>
</Call>


Der Parameter bezeichnet hierbei den Namen des Realms, so wie er beim Hinzufügen zuvor festgelegt wurde.

Hinzufügen einer einzelnen Webapplikation


Folgendes XML-Fragment fügt dem Server eine einzelne Webapplikation hinzu.


<Call name="addWebApplication">
<Arg>/context</Arg>
<Arg>./webapps/webappdir</Arg>
<Set name="extractWAR">false</Set>
<Set name="defaultsDescriptor">etc/webdefault.xml</Set>
 
<Set name="virtualHosts">
<Array type="java.lang.String">
<Item/>
<Item>127.0.0.1</Item>
<Item>localhost</Item>
<Item>www.lobster.de</Item>
</Array>
</Set>
</Call>


Dabei haben die einzelnen Parameter die folgende Bedeutung.


Wert

Bedeutung

Context

Der zu verwendende Kontext für diese Webapplikation. Wird null angegeben, wird der Basiskontext angenommen.

Webappdir

Das Verzeichnis, in dem sich die Webapp-Dateien befinden.

ExtractWAR

Legt fest, ob die gefundene WAR-Datei in ein temporäres Verzeichnis extrahiert werden soll oder nicht.

DefaultsDescriptor

Die XML-Datei, die den Webservice konfiguriert.


Soll die Webapplikation auf bestimmte Virtual Hosts beschränkt sein, kann dies mit dem oben zu sehenden XML-Fragment vorgenommen werden.

Hinzufügen eines Webapplikations-Verzeichnisses


Folgendes XML-Fragment legt ein Verzeichnis als Basisverzeichnis für einstellbare Webapplikationen fest.


<Call name="addWebApplications">
<Arg>
<New class="com.ebd.hub.xml.NullClass"/>
</Arg>
<Arg>./webapps/</Arg>
<Arg>etc/webdefault.xml</Arg>
<Arg type="boolean">true</Arg>
</Call>


Der erste Parameter ist hierbei der eventuell eingestellte Virtual Host, für den das Webapplikations-Verzeichnis gültig sein soll oder der NullClass-Eintrag, wenn das Verzeichnis des jeweiligen HTTP-Servers gilt.

Die restlichen Parameter sind identisch zu den letzten Parametern, die bereits beim Hinzufügen einer einzelnen Webapplikation beschrieben wurden.