JAX-RSアダプタ¶
目次
RESTfulウェブサービス で使用するための以下のアダプタを提供する。
- JSONを Jackson(外部サイト、英語) を使って変換するアダプタ
- Jersey(外部サイト、英語) で RESTfulウェブサービス を使用するためのアダプタ
- RESTEasy(外部サイト、英語) で 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>
Jersey環境下でRESTfulウェブサービスを利用する¶
ウェブアプリケーションサーバにバンドルされている JAX-RS(外部サイト、英語) の実装が、 Jersey(外部サイト、英語) の場合には、Jersey用のアダプタを使用する。
以下にJersey用アダプタの適用方法を示す。
JaxRsMethodBinderFactory#handlerList に対して、Jersey用のハンドラを構築するファクトリクラス(JerseyJaxRsHandlerListFactory) をファクトリインジェクションする。これにより、Jersey用の以下のハンドラ構成が自動的に設定される。
- リクエストボディ変換ハンドラ の設定(以下のコンバータが設定される)
- JSONのコンバータには Jackson2BodyConverter が設定される。
- XMLのコンバータには JaxbBodyConverter が設定される。
- application/x-www-form-urlencodedのコンバータには FormUrlEncodedConverter が設定される。
- JAX-RS BeanValidationハンドラ
<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用の以下のハンドラ構成が自動的に設定される。
- リクエストボディ変換ハンドラ の設定(以下のコンバータが設定される)
- JSONのコンバータには Jackson2BodyConverter が設定される。
- XMLのコンバータには JaxbBodyConverter が設定される。
- application/x-www-form-urlencodedのコンバータには FormUrlEncodedConverter が設定される。
- JAX-RS BeanValidationハンドラ
<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 を実装し対応する。
実装方法は、本アダプタ (JerseyJaxRsHandlerListFactory 、 ResteasyJaxRsHandlerListFactory) を参考にすると良い。