本页面是您了解 WebDAV JAX-RS 扩展库的起始点。包括下列主题:
注:JAX-RS WebDAV 扩展包括在 WebSphere Application Server 运行时中。Web 2.0 and Mobile Toolkit 不安装 JAX-RS WebDAV 扩展。基于 Web 的分布式编写和版本控制 (WebDAV) 是已定义的 HTTP 方法和响应集合,使用户能够对 Web 服务器上的文档进行读写。大多数 Web 站点现在使用基本 HTTP 来允许用户可使用 HTTP GET 方法轻松读取数据以及使用 HTTP POST 和 PUT 方法创建和修改数据。通过提供用于设置和读取文档属性、锁定资源以及支持收集的功能,WebDAV 增强了管理、编辑和编写文档的功能。WebDAV 定义了一组用于构成 WebDAV 协议的 HTTP 方法以及请求和响应实体格式。
Apache Wink WebDAV JAX-RS 扩展库可帮助 JAX-RS 应用程序开发者构建符合 WebDAV 的服务。它提供了 WebDAV XML 的 JAXB 数据模型以帮助读取请求和编写响应,提供了 helper 类以构建响应,以及提供了基于 JAX-RS 的扩展以更轻松地构建 WebDAV 服务。
org.apache.wink.webdav.model 软件包中提供了 JAXB 模型。helper 类包括 org.apache.wink.webdav.server.WebDAVResponseBuilder,它将构建具有各种属性的相应 WebDAV 响应。在 org.apache.wink.webdav 软件包中,为用于公共 WebDAV HTTP 头和属性的 WebDAV HTTP 方法和常量提供了 JAX-RS 兼容的 @HttpMethod 注释。请参阅 API 文档以获取更多详细信息、
如果从 WebSphere Application Server Feature Pack for Web 2.0 and Mobile V7 或 V8 迁移至 WebSphere Application Server V8.5,那么有一些需要注意的事项:
请阅读 IBM JAX-RS 文档以获取有关配置 JAX-RS 的更多信息。可以通过单击相应链接来查看 JAX-RS 文档:
WebSphere Application Server V8.5 JAX-RS 文档。
可以使用 WebDAV 扩展库来编写可使用 WebDAV 协议通信的 JAX-RS 方法和资源。
以下是样本资源方法:
@WebDAVMethod.PROPFIND @Produces(MediaType.APPLICATION_XML) public Response findProperties() throws IOException { SyndFeed feed = /* create an Apache Wink SyndFeed */; return WebDAVResponseBuilder.propfind(feed); }
先前的方法对任何 HTTP PROPFIND 方法请求进行响应,而资源方法使用 WebDAVresponseBuilder 返回带有订阅源数据的响应。
org.apache.wink.webdav.model Java 软件包中提供了 JAXB 模型,以帮助编写响应和读取请求。例如,如果要解析 WebDAV 锁定请求,那么可以使用以下代码来读取 XML:
String bodyContent = /* the XML request */ Unmarshaller unmarshaller = WebDAVModelHelper.createUnmarshaller(); Lockinfo lockinfo = WebDAVModelHelper.unmarshal(unmarshaller, new StringReader(bodyContent), Lockinfo.class, "lockinfo");
此外,可以使用一些资源类来帮助您开始创建 WebDAV 资源。
WebDAVResource 提供了 @OPTIONS 方法,该方法可添加 WebDAV 相应的头:
@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 提供了一些存根方法,用于执行 WebDAV 锁定和解锁。这些方法不会执行真正的锁定,而是提供一个伪锁定,以满足与特定平台的兼容性:
@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 */ }