Cómo empezar con la ampliación JAX-RS de Apache Wink WebDAV

Esta página es el punto de partida para obtener información sobre la biblioteca de la ampliación JAX-RS de WebDAV. Se tratan los temas siguientes:

Nota: la ampliación JAX-RS WebDAV se incluye en el tiempo de ejecución de WebSphere Application Server. Web 2.0 and Mobile Toolkit no instala la ampliación JAX-RS WebDAV.

Visión general

Web-based Distributed Authoring and Versioning (WebDAV) es un conjunto definido de métodos y respuestas HTTP que permiten a los usuarios leer y escribir documentos en un servidor web. Actualmente la mayoría de sitios web utilizan HTTP básica para permitir a los usuarios leer datos fácilmente mediante métodos HTTP GET y para crear y modificar datos mediante métodos HTTP POST y PUT. WebDAV amplía la capacidad de gestionar, editar y escribir documentos proporcionando características para definir y leer propiedades de documentos, recursos de bloqueo y soporte de colecciones. WebDAV define un conjunto de métodos HTTP y formatos de entidades de solicitud y respuesta para formar un protocolo WebDAV.

La biblioteca de la ampliación JAX-RS de Apache Wink WebDAV ayuda a los desarrolladores de aplicaciones JAX-RS a crear servicios compatibles con WebDAV. Proporciona un modelo de datos JAXB del XML WebDAV como ayuda para leer solicitudes y escribir respuestas, clases ayudante para crear respuestas y ampliaciones basadas en JAX-RS para crear más fácilmente servicios WebDAV.

El modelo JAXB se proporciona en el paquete org.apache.wink.webdav.model. Las clases ayudante incluyen org.apache.wink.webdav.server.WebDAVResponseBuilder, que crea respuestas WebDAV adecuadas con diversas propiedades. En el paquete org.apache.wink.webdav hay disponibles anotaciones @HttpMethod compatibles con JAX-RS para los métodos HTTP de WebDAV y constantes para cabeceras y propiedades comunes HTTP de WebDAV. Consulte la documentación de la API para obtener más detalles.

Migración

Si migra desde WebSphere Application Server Versión 7 o Versión 8 Feature Pack for Web 2.0 and Mobile a WebSphere Application Server V8.5, debe tener en cuenta lo siguiente:

Requisitos previos

Lea la documentación de IBM JAX-RS para obtener más información sobre la configuración de JAX-RS. Puede comprobar la documentación de JAX-RS pulsando el enlace correspondiente:

Documentación de JAX-RS de WebSphere Application Server Versión 8.5.

Utilización de la biblioteca de la ampliación JAX-RS de Apache Wink WebDAV

Puede utilizar la biblioteca de la ampliación de WebDAV para escribir métodos y recursos JAX-RS que se puedan comunicar mediante el protocolo WebDAV.

A continuación se muestra un método de recurso de ejemplo:

@WebDAVMethod.PROPFIND
@Produces(MediaType.APPLICATION_XML)
public Response findProperties() throws IOException {
     SyndFeed feed = /* create an Apache Wink SyndFeed */;
     return WebDAVResponseBuilder.propfind(feed);
}

El método anterior responde a cualquier solicitud de método HTTP PROPFIND y, mediante WebDAVresponseBuilder, el método de recurso devuelve una respuesta con los datos del canal de información.

En el paquete Java org.apache.wink.webdav.model se proporciona un modelo JAXB como ayuda para escribir respuestas y leer solicitudes. Por ejemplo, si desea analizar una solicitud de bloqueo WebDAV, podría utilizar lo siguiente para leer el XML:

String bodyContent = /* the XML request */
Unmarshaller unmarshaller = WebDAVModelHelper.createUnmarshaller();
Lockinfo lockinfo = WebDAVModelHelper.unmarshal(unmarshaller,
                                                new StringReader(bodyContent),
                                                Lockinfo.class,
                                                "lockinfo");

Además, puede utilizar algunas clases de recursos como ayuda para empezar a crear recursos WebDAV.

WebDAVResource proporciona un método @OPTIONS que añade las cabeceras WebDAV adecuadas:

@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 proporciona algunos métodos de apéndice para realizar bloqueo y desbloqueo WebDAV. No realizan un bloqueo real pero proporcionan un falso bloqueo para satisfacer la compatibilidad con determinadas plataformas:

@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 */
}

Condiciones de uso | Comentarios