Diese Seite ist der Ausgangspunkt der Informationen zur JAX-RS-Erweiterungsbibliothek für WebDAV. Die Einführung ist in folgende Abschnitte untergliedert:
Web-based Distributed Authoring and Versioning (WebDAV) ist ein definierter Satz von HTTP-Methoden und -Antwortet, die Benutzern das Lesen und Schreiben von Dokumenten auf einem Webserver ermöglichen. Die meisten heuten Websites verwenden Basis-HTTP, um Benutzern zu ermöglichen, Daten mithilfe von HTTP-GET-Methoden ohne großen Aufwand zu lesen und mithilfe von HTTP-POST- und HTTP-PUT-Methoden Daten zu erstellen und zu ändern. WebDAV erweitert die Möglichkeit, Dokumente zu verwalten, zu bearbeiten und zu schreiben, indem es Features bereitstellt, mit denen Dokumenteigenschaften definiert und gelesen, Ressourcen gesperrt und Sammlungen unterstützt werden können. WebDAV definiert einen Satz von HTTP-Methoden sowie Entitätsformaten für Anforderungen und Antworten, die das WebDAV-Protokoll bilden.
Die JAX-RS-Erweiterungsbibliothek für Apache Wink WebDAV hilft JAX-RS-Anwendungsentwicklern, WebDAV-konforme Services zu erstellen. Sie stellt ein JAXB-Datenmodell der WebDAV-XML für das Lesen von Anforderungen und das Schreiben von Antworten, Helperklassen für das Erstellen von Antworten und JAX-RS-basierte Erweiterungen bereit, um WebDAV-Services noch einfacher erstellen zu können.
Das JAXB-Modell wird im Paket "org.apache.wink.webdav.model" bereitgestellt. Zu den Helperklassen gehört org.apache.wink.webdav.server.WebDAVResponseBuilder, eine Klasse, die entsprechende WebDAV-Methoden mit verschiedenen Eigenschaften erstellt. Im Paket "org.apache.wink.webdav" sind JAX-RS-kompatible @HttpMethod-Annotationen für die WebDAV-HTTP-Methoden und -Konstanten für gängige WebDAV-HTTP-Header und -Eigenschaften verfügbar. Weitere Einzelheiten finden Sie in der API-Dokumentation.
Verwenden Sie die Dokumentation zu IBM JAX-RS, um die entsprechenden JAX-RS-JAR-Dateien dem Klassenpfad für Ihre Entwicklungsumgebung hinzuzufügen. Nachdem Sie die entsprechende JAX-RS-API und -Implementierung dem Entwicklungsklassenpfad hinzugefügt haben, können Sie das JAX-RS-Programmiermodell verwenden, um Ihre WebDAV-Anwendung zu entwickeln.
Sie finden die entsprechende JAX-RS-Dokumentation unter einem der folgenden Links:
JAX-RS-Dokumentation zu WebSphere Application Server Version 6.1
JAX-RS-Dokumentation zu WebSphere Application Server Version 7.0
JAX-RS-Dokumentation zu WebSphere Application Server Version 8.0
Zum Erstellen von Services mit der JAX-RS-Erweiterungsbibliothek für Apache Wink WebDAV fügen Sie die Datei "wink-jaxrs-webdav.jar" dem Verzeichnis "WEB-INF/lib" Ihrer Webanwendung hinzu, wenn Sie Ihre Anwendung entwickeln und assemblieren. Sie finden die Datei "wink-jaxrs-webdav.jar" unter <Installationsstammverzeichnis>/web2mobilefep_1.1/optionalLibraries/jaxrs_1.X/webdav. Die Datei "wink-jaxrs-webdav.jar" für WebSphere Application Server Community Edition finden Sie unter <Installationsstammverzeichnis>/web2mobilefep_1.1/AppServices/optionalLibraries/wink-jaxrs-webdav.
Indem Sie die Erweiterungsbibliothek der Anwendung hinzügen, erhalten Sie das WebDAV-JAXB-Modell und weitere Hilfsdienstprogrammmethoden, die das JAX-RS-Programmiermodell erweitern.
Sie können die Erweiterungsbibliothek für WebDAV verwenden, um JAX-RS-Methoden und -Ressourcen zu schreiben, die über das WebDAV-Protokoll kommunizieren können.
Im Folgenden sehen Sie ein Beispiel für eine Ressourcenmethode:
@WebDAVMethod.PROPFIND @Produces(MediaType.APPLICATION_XML) public Response findProperties() throws IOException { SyndFeed feed = /* Apache Wink SyndFeed erstellen */; return WebDAVResponseBuilder.propfind(feed); }
Die vorherige Methode antwortet auf alle HTTP-PROPFIND-Methodenanforderungen, und unter Verwendung des WebDAVresponseBuilder gibt die Ressourcenmethode eine Antwort mit den Feeddaten zurück.
Im Paket "org.apache.wink.webdav.model" wird ein JAXB-Modell bereitgestellt, das Sie beim Schreiben von Antworten und Lesen von Anforderungen unterstützt. Wenn Sie beispielsweise eine WebDAV-Sperranforderung parsen möchten, könnten Sie den folgenden Code verwenden, um die XML zu lesen:
String bodyContent = /* the XML request */ Unmarshaller unmarshaller = WebDAVModelHelper.createUnmarshaller(); Lockinfo lockinfo = WebDAVModelHelper.unmarshal(unmarshaller, new StringReader(bodyContent), Lockinfo.class, "lockinfo");
Außerdem können Sie einige Ressourcenklassen als Einführung in die Erstellung von WebDAV-Ressourcen verwenden.
WebDAVResource stellt eine Methode @OPTIONS bereit, die die entsprechenden WebDAV-Header hinzufügt:
@Path("/myresource/") public class MyResource extends org.apache.wink.webdav.server.WebDAVResource { /* Eine mit @OPTIONS annotierte Implementierung der JAX-RS-Ressourcenmethode aus WebDAVResource abrufen */ /* Eigene WebDAV-Methoden implementieren */ }
WebDAVLockableResource stellt einige Stubmethoden für WebDAV-Sperr- und -Freigabeoperationen bereit. Sie führen keine echte Sperre durch, sondern stellen eine Pseudosperre bereit, um die Kompatibilität mit bestimmten Plattformen zu gewährleisten:
@Path("/myresource2/") public class MyResource2 extends org.apache.wink.webdav.server.WebDAVLockableResource { /* @LOCK- und @UNLOCK-Stubmethoden für Kompatibilität abrufen */ /* Eigene WebDAV-Methoden implementieren */ }