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:
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.
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:
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.
É 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 */ }