3.2.3. JAX-RS および RESTEasy の変更

3.2.3.1. JAX-RS および RESTEasy の変更の設定

JBoss Enterprise Application Platform 6 は自動的に RESTEasy を設定するため、手作業で設定する必要はありません。そのため、web.xml ファイルから既存の RESTEasy の設定をすべて削除し、次の 3 つのオプションの 1 つに置き換える必要があります。

  1. Subclass javax.ws.rs.core.Application および @ApplicationPath annotation アノテーションの使用。
    これが最も簡単なオプションで、xml の設定が必要ありません。次のようにアプリケーションで javax.ws.rs.core.Application をサブクラス化し、 JAX-RS クラスを使用可能にするパスを用いてアノテーションを付けます。
    @ApplicationPath("/mypath")
    public class MyApplication extends Application {
    }
    
    上記の例では、JAX-RS リソースはパス /MY_WEB_APP_CONTEXT/mypath/ で使用できるようになります。

    注記

    パスは /mypath/* ではなく /mypath として指定する必要があることに注意してください。最後にフォワードスラッシュやアスタリスクがあってはなりません。
  2. サブクラス javax.ws.rs.core.Application および JAX-RS マッピングの設定に web.xml を使用する。
    @ApplicationPath アノテーションを使用したくない場合でも javax.ws.rs.core.Application をサブクラス化する必要があります。サブクラス化した後に web.xml ファイルに JAX-RS マッピングを設定します。
    public class MyApplication extends Application {
    }
    
    <servlet-mapping>
       <servlet-name>com.acme.MyApplication</servlet-name>
       <url-pattern>/hello/*</url-pattern>
    </servlet-mapping>
    上記の例では、JAX-RS リソースはパス /MY_WEB_APP_CONTEXT/hello で使用できるようになります。

    注記

    この方法を使用して @ApplicationPath アノテーションを使用して設定されたアプリケーションパスを上書きすることもできます。
  3. web.xml ファイルの変更
    Application をサブクラス化したくない場合、次のように web.xml ファイルで JAX-RS のマッピングを設定することが可能です。
    <servlet-mapping>
       <servlet-name>javax.ws.rs.core.Application</servlet-name>
       <url-pattern>/hello/*</url-pattern>
    </servlet-mapping>
    上記の例では、JAX-RS リソースはパス /MY_WEB_APP_CONTEXT/hello で使用できるようになります。

    注記

    このオプションを選択した場合、マッピングの追加のみが必要となります。対応するサーブレットを追加する必要はありません。対応するサーブレットはサーバーによって自動的に追加されるはずです。