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:
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.
Lea la documentación de IBM JAX-RS para añadir los JAR JAX-RS adecuados a la vía de acceso de clases de su entorno de desarrollo. Cuando haya añadido la implementación y la API JAX-RS adecuada a la vía de acceso de clases de desarrollo, podrá utilizar el modelo de programación JAX-RS para desarrollar la aplicación WebDAV.
Puede comprobar la documentación de JAX-RS pulsando el enlace correspondiente:
Documentación de JAX-RS de WebSphere Application Server Versión 6.1.
Documentación de JAX-RS de WebSphere Application Server Versión 7.0.
Documentación de JAX-RS de WebSphere Application Server Versión 8.0.
Para crear servicios con la biblioteca de la ampliación de JAX-RS de Apache Wink WebDAV, añada el archivo wink-jaxrs-webdav.jar al directorio WEB-INF/lib de la aplicación web al desarrollar y ensamblar la aplicación. Puede encontrar el archivo wink-jaxrs-webdav.jar en <RAÍZ_INSTALACIÓN>/web2mobilefep_1.1/optionalLibraries/jaxrs_1.X/webdav. Para WebSphere Application Server Community Edition, puede encontrar el archivo wink-jaxrs-webdav.jar en <RAÍZ_INSTALACIÓN>/web2mobilefep_1.1/AppServices/optionalLibraries/wink-jaxrs-webdav.
Añadiendo la biblioteca de la ampliación a la aplicación, obtiene el modelo WebDAV JAXB y otros métodos de programa de utilidad de ayudante que amplían el modelo de programación JAX-RS.
Puede utilizar la biblioteca de la amplicació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 */ }