JAX-RSアダプタ

RESTfulウェブサービス で使用するための以下のアダプタを提供する。

モジュール一覧

<!-- jacksonアダプタを使う場合 -->
<dependency>
  <groupId>com.nablarch.integration</groupId>
  <artifactId>nablarch-jackson-adaptor</artifactId>
</dependency>

<!-- Jersey用アダプタを使う場合 -->
<dependency>
  <groupId>com.nablarch.integration</groupId>
  <artifactId>nablarch-jersey-adaptor</artifactId>
</dependency>

<!-- RESTEasy用アダプタを使う場合 -->
<dependency>
  <groupId>com.nablarch.integration</groupId>
  <artifactId>nablarch-resteasy-adaptor</artifactId>
</dependency>

ちなみに

jacksonのバージョン2.7.0及び1.9.13を使用してテストを行っている。 バージョンを変更する場合は、プロジェクト側でテストを行い問題ないことを確認すること。

jacksonの1系(nablarch.integration.jaxrs.jackson.Jackson1BodyConverter)を使用する場合には、 jackson1系への依存を追加すること。

<dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-mapper-asl</artifactId>
  <version>1.9.13</version>
</dependency>

Jersey環境下でRESTfulウェブサービスを利用する

ウェブアプリケーションサーバにバンドルされている JAX-RS(外部サイト、英語) の実装が、 Jersey(外部サイト、英語) の場合には、Jersey用のアダプタを使用する。

以下にJersey用アダプタの適用方法を示す。

JaxRsMethodBinderFactory#handlerList に対して、Jersey用のハンドラを構築するファクトリクラス(JerseyJaxRsHandlerListFactory) をファクトリインジェクションする。これにより、Jersey用の以下のハンドラ構成が自動的に設定される。

<component name="packageMapping" class="nablarch.integration.router.RoutesMapping">
  <property name="methodBinderFactory">
    <component class="nablarch.fw.jaxrs.JaxRsMethodBinderFactory">
      <property name="handlerList">
        <!-- handlerListプロパティにJerseyのハンドラキューをファクトリインジェクションする -->
        <component class="nablarch.integration.jaxrs.jersey.JerseyJaxRsHandlerListFactory"/>
      </property>
    </component>
  </property>

  <!-- 上記以外のプロパティは省略 -->
</component>

ちなみに

使用するウェブアプリケーションサーバに Jackson(外部サイト、英語) が バンドルされていない場合は、Jacksonのモジュールをアプリケーションモジュールとセットでデプロイすること。

RESTEasy環境下でRESTfulウェブサービスを利用する

ウェブアプリケーションサーバにバンドルされている JAX-RS(外部サイト、英語) の実装が、 RESTEasy(外部サイト、英語) の場合には、RESTEasy用のアダプタを使用する。

以下にRESTEasy用アダプタの適用方法を示す。

JaxRsMethodBinderFactory#handlerList に対して、RESTEasy用のハンドラを構築するファクトリクラス(ResteasyJaxRsHandlerListFactory) をファクトリインジェクションする。これにより、RESTEasy用の以下のハンドラ構成が自動的に設定される。

<component name="packageMapping" class="nablarch.integration.router.RoutesMapping">
  <property name="methodBinderFactory">
    <component class="nablarch.fw.jaxrs.JaxRsMethodBinderFactory">
      <property name="handlerList">
        <!-- handlerListプロパティにRESTEasyのハンドラキューをファクトリインジェクションする -->
        <component class="nablarch.integration.jaxrs.resteasy.ResteasyJaxRsHandlerListFactory"/>
      </property>
    </component>
  </property>

  <!-- 上記以外のプロパティは省略 -->
</component>

ちなみに

使用するウェブアプリケーションサーバに Jackson(外部サイト、英語) が バンドルされていない場合は、Jacksonのモジュールをアプリケーションモジュールとセットでデプロイすること。

各環境下で利用するボディコンバータを変更(追加)したい

プロジェクトで対応すべきMIMEが増えた場合には、 JaxRsHandlerListFactory を実装し対応する。

実装方法は、本アダプタ (JerseyJaxRsHandlerListFactoryResteasyJaxRsHandlerListFactory) を参考にすると良い。