Jakarta RESTful Web Servicesアダプタ

補足

本機能は、Nablarch5までは「JAX-RS アダプタ」という名称だった。 しかし、Java EEがEclipse Foundationに移管され仕様名が変わったことに伴い「Jakarta RESTful Web Servicesアダプタ」という名称に変更された。

変更されたのは名称のみで、機能的な差は無い。

その他、Nablarch6で名称が変更された機能については Nablarch5と6で名称が変更になった機能について を参照のこと。

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.17.1を使用してテストを行っている。 バージョンを変更する場合は、プロジェクト側でテストを行い問題ないことを確認すること。

補足

Jackson1系ライブラリの脆弱性対応が行われなくなったため、Nablarch5u16よりJackson1系のサポートを廃止した。 Jackson1系を使用していた場合はJackson2系へ移行すること。

【参考情報】

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

ウェブアプリケーションサーバにバンドルされている Jakarta RESTful Web Services(外部サイト、英語) の実装が、 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ウェブサービスを使用する

ウェブアプリケーションサーバにバンドルされている Jakarta RESTful Web Services(外部サイト、英語) の実装が、 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) を参考にすると良い。