Apache Wink WebDAV JAX-RS 拡張入門

このページは、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 の資料

Apache Wink WebDAV 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 */
}

ご利用条件 | フィードバック