Introdução à extensão JAX-RS do Apache Wink WebDAV

Esta página é o ponto de início para o aprendizado sobre a biblioteca de extensões JAX-RS do WebDAV. Os seguintes tópicos são abrangidos:

Nota: A extensão JAX-RS WebDAV é incluída no tempo de execução do WebSphere Application Server. A extensão JAX-RS WebDAV não é instalada pelo Web 2.0 and Mobile Toolkit.

Visão geral

O Web-based Distributed Authoring and Versioning (WebDAV) é um conjunto definido de métodos e respostas de HTTP para permitir que os usuários leiam e gravem documentos em um servidor da Web. Atualmente, a maioria dos sites da Web usam HTTP básico para permitir que os usuários leiam dados facilmente usando os métodos GET de HTTP e criem e modifiquem dados usando os métodos POST e PUT de HTTP. O WebDAV aprimora a capacidade de gerenciar, editar e gravar documentos ao fornecer recursos para configurar e ler propriedades de documento, recursos de bloqueio e suporte para coleções. O WebDAV define um conjunto de métodos de HTTP e formatos de entidade de solicitação e resposta para formar o protocolo de WebDAV.

A biblioteca de extensões JAX-RS do Apache Wink WebDAV ajuda os desenvolvedores do aplicativo JAX-RS a construir serviços WebDAV compatíveis. Ela fornece um modelo de dados JAXB do WebDAV XML para ajudar a ler solicitações e gravar respostas, classes auxiliares para construir respostas e extensões baseadas em JAX-RS para construir serviços WebDAV mais facilmente.

O modelo JAXB é fornecido no pacote org.apache.wink.webdav.model. As classes auxiliares incluem o org.apache.wink.webdav.server.WebDAVResponseBuilder, que constrói respostas WebDAV apropriadas com diversas propriedades. No pacote org.apache.wink.webdav, as anotações @HttpMethod compatíveis com JAX-RS estão disponíveis para os métodos e constantes WebDAV HTTP para cabeçalhos e propriedades de WebDAV HTTP comuns. Consulte a documentação da API para obter mais detalhes.

Migração

Se você estiver migrando do Feature Pack para Web 2.0 and Mobile do WebSphere Application Server Versão 7 ou Versão 8, para o WebSphere Application Server Versão 8.5, há poucas coisas a considerar:

Pré-requisitos

Leia a documentação do IBM JAX-RS para obter informações adicionais sobre a configuração do JAX-RS. É possível verificar a documentação do JAX-RS ao clicar no link apropriado:

WebSphere Application Server Versão 8.5 Documentação do JAX-RS.

Usando a biblioteca de extensões JAX-RS do Apache Wink WebDAV

É possível usar a biblioteca de extensões do WebDAV para gravar métodos e recursos JAX-RS que possam se comunicar usando o protocolo WebDAV.

Este é um método de recurso de amostra:

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

O método anterior responde qualquer solicitação de método HTTP PROPFIND e, usando o WebDAVresponseBuilder, o método do recurso retorna uma resposta com os dados de alimentação.

Um modelo JAXB é fornecido no pacote Java org.apache.wink.webdav.model para ajudar a gravar respostas e ler solicitações. Por exemplo, se desejar analisar uma solicitação de bloqueio de WebDAV, será possível usar os seguintes itens para ler o XML:

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

Além disso, é possível usar algumas classes de recursos para ajudá-lo a iniciar na criação de recursos WebDAV.

O WebDAVResource fornece um método @OPTIONS que inclui os cabeçalhos WebDAV apropriados:

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

O WebDAVLockableResource fornece alguns métodos stub para executar o bloqueio e desbloqueio do WebDAV. Eles não executam um bloqueio verdadeiro, mas fornecem um bloqueio falso para satisfazer a compatibilidade com 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 */ }

Termos de Uso | Feedback