このページは、WebDAV JAX-RS 拡張ライブラリーについて学習するための開始点です。以下のトピックについて説明します。
注: JAX-RS WebDAV 拡張は、WebSphere Application Server ランタイムに組み込まれています。JAX-RS WebDAV 拡張は、Web 2.0 および Mobile Toolkit によってはインストールされません。Web-based Distributed Authoring and Versioning (WebDAV) は、HTTP メソッドおよび応答の集合を 定義したものであり、これを使用してユーザーは Web サーバー上の文書の読み取りおよび書き込みを行うことができます。現在では、ほとんどの Web サイト では、基本的な HTTP を使用して、ユーザーが HTTP GET メソッドを使用して簡単にデータを読み取ったり、 HTTP POST および PUT メソッドを使用してデータを作成および変更できるようになっています。WebDAV は、文書の管理、編集、および書き込みの機能を強化 するため、文書プロパティーの設定と読み取り、リソースのロック、およびコレクションのサポートのための機能を提供します。WebDAV は、 HTTP メソッドの集合と、要求エンティティーおよび応答エンティティーのフォーマットを定義して、WebDAV プロトコルを形成しています。
Apache Wink WebDAV JAX-RS 拡張ライブラリーは、JAX-RS アプリケーション開発者 が WebDAV に準拠したサービスを作成するのを支援します。この拡張ライブラリーは、要求の読み取りと応答の書き込み に役立つ WebDAV XML の JAXB データ・モデル、応答を作成するための helper クラス、WebDAV サービスの作成を簡単 にする JAX-RS ベースの拡張機能を提供します。
JAXB モデルは、org.apache.wink.webdav.model パッケージで提供されます。helper クラス は、さまざまなプロパティーで適切な WebDAV 応答 を作成する org.apache.wink.webdav.server.WebDAVResponseBuilder を含んでいます。org.apache.wink.webdav パッケージには、 WebDAV HTTP メソッド用の JAX-RS 互換 @HttpMethod アノテーションと、一般的な WebDAV HTTP ヘッダーおよびプロパティー用の定数が 入っています。詳しくは、API 資料を参照してください。
Feature Pack for Web 2.0 and Mobile が適用された WebSphere Application Server バージョン 7 またはバージョン 8 から WebSphere Application Server V8.5 にマイグレーションする場合、考慮すべき事項が若干あります。
JAX-RS の構成について詳しくは、IBM JAX-RS の資料を参照してください。以下の適切なリンクをクリックして、JAX-RS 資料を確認することができます。
WebSphere Application Server Version 8.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 は、適切な WebDAV ヘッダーを追加する @OPTIONS メソッドを提供します。
@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 */ }