検索

第2章 JAX-RS Web サービスの開発

download PDF

JAX-RS は RESTful Web サービスの Java API です。これは、アノテーションを使用して REST を使用した Web サービスを構築することをサポートします。これらのアノテーションは、Java オブジェクトを Web リソースにマッピングするプロセスを簡素化します。

RESTEasy は JAX-RS の Red Hat JBoss Enterprise Application Platform 7 実装で、JSR 370: Java™ API for RESTful Web Services (JAX-RS 2.1) 仕様に完全準拠しています。また、この仕様に追加機能も提供します。

Red Hat JBoss Enterprise Application Platform の 7.3 リリースは、Jakarta Enterprise Web Services 1.4 および Jakarta RESTful Web Services 2.1 Jakarta EE 仕様にも準拠しています。

JAX-RS を初めて使用する場合は、Red Hat JBoss Enterprise Application Platform 7 に同梱される helloworld -rs、jaxrs-client、および kitchensink クイックスタートを参照してください。

注記

JBoss EAP は resteasy-cryptoresteasy-yaml-provider、および jose-jwt モジュールをサポートしません。

2.1. JAX-RS アプリケーション

プロバイダーと Web リソースを作成する際に、それらを宣言するには以下のオプションを使用できます。

  • web.xml ファイルなしで javax.ws.rs.core.Application の簡単なサブクラス。
  • web.xml ファイルの使用。
  • Javax.ws.rs.core.Application のサブクラス化とカスタム実装の提供。

2.1.1. javax.ws.rs.core.Application の単純なサブクラス化

javax.ws.rs.core.Application クラスを使用して、これらのプロバイダーおよび Web リソースを宣言するサブクラスを作成できます。このクラスは、JBoss EAP に含まれる RESTEasy ライブラリーによって提供されます。

javax.ws.rs.core.Application を使用してリソースまたはプロバイダーを設定するには、拡張するクラスを作成して @ApplicationPath アノテーションを追加します。

例: アプリケーションクラス

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/root-path")
public class MyApplication extends Application
{
}

2.1.2. web.xml の使用

または、javax.ws.rs.core.Application を拡張するクラスを作成しない場合は、web.xml ファイルに以下を追加します。

例: web.xml

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <servlet>
      <servlet-name>javax.ws.rs.core.Application</servlet-name>
  </servlet>
  <servlet-mapping>
      <servlet-name>javax.ws.rs.core.Application</servlet-name>
      <url-pattern>/root-path/*</url-pattern>
  </servlet-mapping>
  ...
</web-app>

2.1.3. カスタム実装による javax.ws.rs.core.Application のサブクラス化

javax.ws.rs.core.Application のサブクラス化を行うとき、既存のメソッドにカスタム実装を提供することを選択できます。getClasses および getSingletons メソッドは、公開された JAX-RS アプリケーションに含める必要があるクラスまたはシングルトンのコレクションを返します。

  • getClasses および getSingletons のいずれかが空でないコレクションを返す場合、これらのクラスとシングルトンのみが JAX-RS アプリケーションで公開されます。
  • getClassesgetSingletons両方が空のコレクションを返す場合、web アプリケーションでパッケージ化された root リソースクラスおよびプロバイダーはすべて JAX-RS アプリケーションに含まれます。その後、RESTEasy はこれらのリソースを自動的に検出します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.