Cette page représente le point de départ de découverte de la bibliothèque d'extensions WebDAV JAX-RS. Les rubriques suivantes sont traitées :
Web-based Distributed Authoring and Versioning (WebDAV) est un ensemble défini de réponses et méthodes HTTP autorisant les utilisateurs à lire et écrire des documents sur un serveur Web. La plupart des sites Web utilisent aujourd'hui un protocole HTTP basique pour autoriser les utilisateurs à lire facilement les données à l'aide des méthodes HTTP GET et à créer et modifier des données avec les méthodes HTTP POST et PUT. WebDAV améliore la capacité de gestion, édition et écriture de documents en fournissant des fonctions pour définir et lire les propriétés de documents, verrouiller les ressources et prendre en charge les collections. WebDAV définit un ensemble de méthodes of HTTP et requête et formats d'entités de réponse pour former le protocole WebDAV.
La bibliothèque d'extension Apache Wink WebDAV JAX-RS aide les développeurs d'application JAX-RS à construire des services conformes WebDAV. Elle fournit un modèle de données JAXB de WebDAV XML pour aider la lecture des requêtes et l'écriture de réponses, les classes auxiliaires pour générer des réponses et les extensions basées sur JAX-RS pour créer aisément des services WebDAV.
Le modèle JAXB est fourni dans le module org.apache.wink.webdav.model. Les classes auxiliaires incluent org.apache.wink.webdav.server.WebDAVResponseBuilder, qui crée des réponses WebDAV appropriées avec différentes propriétés. Dans le module org.apache.wink.webdav, les annotations @HttpMethod compatibles JAX-RS sont disponibles pour les méthodes WebDAV HTTP et constantes pour les propriétés et en-têtes WebDAV HTTP. Voir la documentation API pour plus de détails.
Consultez la documentation IBM JAX-RS pour ajouter les JAX-RS JAR appropriés à votre chemin d'accès aux classes pour votre environnement de développement. Une fois que vous avez ajouté les bonnes API JAX-RS API et implémentation à votre chemin de développement, vous pouvez utiliser le modèle de programmation JAX-RS pour développer votre application WebDAV.
Vous pouvez consulter la documentation JAX-RS en cliquant sur le lien correspondant :
Documentation JAX-RS WebSphere Application Server Version 6.1.
Documentation JAX-RS WebSphere Application Server Version 7.0.
Documentation JAX-RS WebSphere Application Server Version 8.0.
Pour créer des services avec la bibliothèque d'extensions Apache Wink WebDAV JAX-RS, ajoutez le wink-jaxrs-webdav.jar au répertoire WEB-INF/lib de votre application Web lors du développement et de l'assemblage de votre application. Vous trouverez le fichier wink-jaxrs-webdav.jar dans <INSTALL_ROOT>/web2mobilefep_1.1/optionalLibraries/jaxrs_1.X/webdav. Pour WebSphere Application Server Community Edition, vous trouverez le fichier wink-jaxrs-webdav.jar dans <INSTALL_ROOT>/web2mobilefep_1.1/AppServices/optionalLibraries/wink-jaxrs-webdav.
En ajoutant la bibliothèque d'extensions à votre application, vous gagnez le modèle WebDAV JAXB et autres méthodes d'utilitaires auxiliaires améliorant le modèle de programmation JAX-RS.
Vous pouvez utiliser la bibliothèque d'extensions WebDAV pour écrire les méthodes JAX-RS et ressources qui peuvent communiquer à l'aide du protocole WebDAV.
Voici un exemple de méthode de ressource :
@WebDAVMethod.PROPFIND @Produces(MediaType.APPLICATION_XML) public Response findProperties() throws IOException { SyndFeed feed = /* create an Apache Wink SyndFeed */; return WebDAVResponseBuilder.propfind(feed); }
La méthode précédente répond à toute requête de méthode HTTP PROPFIND et, à l'aide de WebDAVresponseBuilder, la méthode de ressource renvoie une réponse avec les données de flux.
Un modèle JAXB est fourni dans le module org.apache.wink.webdav.model Java pour aider à écrire les réponses et lire les requêtes. Par exemple, si vous souhaitez analyser une requête de verrouillage WebDAV, vous pouvez utiliser le bloc suivant pour lire le XML :
String bodyContent = /* the XML request */ Unmarshaller unmarshaller = WebDAVModelHelper.createUnmarshaller(); Lockinfo lockinfo = WebDAVModelHelper.unmarshal(unmarshaller, new StringReader(bodyContent), Lockinfo.class, "lockinfo");
En outre, vous pouvez utiliser des classes de ressources pour vous aider à démarrer la création de ressources WebDAV.
WebDAVResource fournit une méthode @OPTIONS qui ajoute les en-têtes WebDAV appropriés :
@Path("/myresource/") public class MyResource extends org.apache.wink.webdav.server.WebDAVResource { /* get an @OPTIONS annotated JAX-RS resource method implementation from WebDAVResource */ /* implement your own WebDAV methods */ }
WebDAVLockableResource fournit des méthodes de remplacement pour verrouiller et déverrouiller WebDAV. Elles ne réalisent pas un véritable verrouillage mais proposent un faux verrouillage permettant de satisfaire la compatibilité avec certaines plateformes :
@Path("/myresource2/") public class MyResource2 extends org.apache.wink.webdav.server.WebDAVLockableResource { /* get @LOCK and @UNLOCK stub methods for compatibility */ /* implement your own WebDAV methods */ }