Initiation à l'extension Apache Wink WebDAV JAX-RS

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 :

Remarque : l'extension JAX-RS WebDAV est inclus dans l'exécution WebSphere Application Server. L'extension JAX-RS WebDAV n'est pas installée par Web 2.0 and Mobile Toolkit.

Présentation

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.

Migration

Si vous effectuez une migration depuis WebSphere Application Server version 7 ou Version 8 Feature Pack for Web 2.0 and Mobile vers WebSphere Application Server version 8.5, vous devez tenir compte de plusieurs éléments :

Prérequis

Pour plus d'informations sur la configuration de JAX-RS, consultez la documentation IBM JAX-RS. Vous pouvez consulter la documentation JAX-RS en cliquant sur le lien correspondant :

Documentation JAX-RS de WebSphere Application Server version 8.5.

Utilisation de la bibliothèque d'extensions Apache Wink WebDAV 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 */
}

Conditions d'utilisation | Commentaires