Datei "web.xml" für JAX-RS-Filter konfigurieren
Die Datei "web.xml" enthält Informationen zur Struktur und zu den externen Abhängigkeiten von Webkomponenten im Modul und beschreibt, wie die Komponenten zur Laufzeit verwendet werden. Wenn Sie den Web-Container für die Ausführung von JAX-RS-Anwendungen (Java™ API for RESTful Web Services) aktivieren möchten, können Sie in der Datei "web.xml" Filter definieren und die URLs für das Aufrufen der Filter angeben.
Informationen zu diesem Vorgang
Sie können die Datei "web.xml" für Ihre Webanwendung konfigurieren, um den JAX-RS-Anwendungscode zu aktivieren. Sie können einen IBM® spezifischen JAX-RS-Filter für die Ausführung Ihres JAX-RS-Codes an. Die Datei "web.xml" enthält Konfigurations- und Deployment-Informationen für die Webkomponenten, die eine Webanwendung enthalten. Weitere Informationen zu dieser Implementierungsdeskriptordatei finden Sie in den Informationen zur Konfiguration der Datei "web.xml" für JAX-RS.
Wenn Sie Servlets verwenden möchten, wird jeder Servletpfad, der in der Datei "web.xml" definiert ist, an den Basis-URL angefügt. Filter fügen keinen Pfad an den Basis-URL der Ressource an. Stattdessen zeigen URL-Zuordnungen die möglichen URLs an, mit denen der Filter aufgerufen werden kann. Wenn beispielsweise eine Stammressource den Wert myresource für "@javax.ws.rs.Path" hat, lautet der endgültige URL der Ressource http://<Hostname>:<Web-Container-Port>/<Kontextstammverzeichnis_der_Webanwendung>/myresource. Das URL-Zuordnungsmuster für den Filter muss mit myresource übereinstimmen, damit die Stammressource richtig bereitgestellt wird. Für dieses Beispiel können Sie für das URL-Muster /* oder /myresource verwenden. Wenn es mehrere Ressourcen in der Anwendung gibt, muss das URL-Muster für den Filter mit allen Ressourcen übereinstimmen. Das Muster /* ist ein allgemeiner Wert für den Filter.
Wenn der eingehende Anforderungs-URL nicht mit JAX-RS-Ressourcen in der JAX-RS-Anwendung übereinstimmt, wird die Anforderung an die übrige Filterkette übergeben. Je nach Anwendung können Sie das Filterverhalten so gestalten, dass Anforderungen von der JAX-RS-Anwendung bereitgestellt werden. Ist keine JAX-RS-Anwendung verfügbar, kann die Anforderung an ein zugrunde liegendes Web-Container-Artefakt, z. B. eine JavaServer Page (JSP), weitergeleitet werden. Wenn der Web-Container kein übereinstimmendes Artefakt hat, ist der Web-Container für die Fehlerantwort zuständig.
Vorgehensweise
Ergebnisse
Beispiel
Das folgende Beispiel veranschaulicht eine Datei "WEB-INF/web.xml", die konfiguriert ist, Filter auf eine JAX-RS-Anwendung anzuwenden. In diesem Beispiel wird der Filter RestApplication1 definiert. Stimmt ein eingehender Anforderungs-URL mit einer Ressource im Filter "RestApplication1" überein, wird die Antwort im Filter "RestApplication1" generiert. Wenn der eingehende Anforderungs-URL mit einer Ressource im Filter "RestApplication1" nicht übereinstimmt, jedoch mit einer Ressource im Filter "OtherRestApplicationFilter" übereinstimmt, wird die Antwort im Filter "OtherRestApplicationFilter" generiert. Stimmt der eingehende URL mit keinem der Filter überein, kann die Anforderung von einem anderen Web-Container-Artefakt, z. B. einer JavaServer Page (JSP), bereitgestellt werden.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns=http://java.sun.com/xml/ns/j2ee
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>RestApplication1</filter-name>
<filter-class>com.ibm.websphere.jaxrs.server.IBMRestFilter</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.ibm.rest.sample.app1.MyApplication</param-value>
</init-param>
<init-param>
<param-name>requestProcessorAttribute</param-name>
<param-value>restApplication1ProcessorID</param-value>
</init-param>
</filter>
<filter>
<filter-name>OtherRestApplicationServlet</filter-name>
<filter-class>com.ibm.websphere.jaxrs.server.IBMRestFilter</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.ibm.rest.other.sample.OtherApplication</param-value>
</init-param>
<init-param>
<param-name>requestProcessorAttribute</param-name>
<param-value>otherRestApplicationID </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RestApplication1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>OtherRestApplicationServlet</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Nächste Schritte
Assemblieren Sie die Webanwendung.