3 RESTful Webサービス・クライアントの開発
Jersey 2.x Java API for RESTful Web Services (JAX-RS) 2.0参照実装(RI)を使用して、Representational State Transfer (REST)アーキテクチャ・スタイルに従ったJava EE Webサービス・クライアントを開発できます。
ノート:
Jersey 1.18 (JAX-RS 1.1RI)クライアントAPIのサポートは、今回のリリースのWebLogic Serverで非推奨になりましたが、下位互換性のために維持されています。Jersey 1.18 (JAX-RS 1.1 RI)を使用したRESTful Webサービス・クライアントの開発を参照してください
Jersey 2.x (JAX-RS 2.0 RI)クライアントAPIを使用するように(この章の説明を参照)、RESTfulクライアント・アプリケーションを早急に更新することをお薦めします。
この章の内容は次のとおりです:
RESTful Webサービス・クライアントを開発するタスクの概要
表3-1 RESTful Webサービス・クライアントを開発するタスクの概要
タスク | 詳細情報 |
---|---|
|
Jersey 2.22 User GuideのCreating and configuring a Client instance |
Webリソースをターゲット指定します。 |
Jersey 2.22 User Guideの「Targeting a web resource」 |
WebTargetでリソースを指定します。 |
Jersey 2.22 User GuideのWebターゲットでのリソースの特定に関する項 |
HTTPリクエストを呼び出します。 |
Jersey 2.22 User Guideの「Invoking a HTTP request」 |
Oracle JDeveloperを使用したRESTful Webサービス・クライアントの開発の詳細は、Oracle JDeveloperによるアプリケーションの開発のRESTful Webサービスおよびクライアントの作成を参照してください。
RESTful Webサービス・クライアントの例
-
Client
インスタンスが作成され、WebTarget
が定義されます。 -
Webリソースにアクセスするためのリソース・パスが定義されます。
-
Invocation.Builder
を使用してget
リクエストがリソースに送信されます。 -
レスポンスは文字列値で返されます。
例3-1 Jersey 2.x (JAX-RS 2.0 RI)を使用した簡単なRESTful Webサービス・クライアント
package samples.helloworld.client; ... import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Invocation; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; public class helloWorldClient{ public static void main(String[] args) { Client client = ClientBuilder.newClient(); WebTarget target = client.target("http://localhost:7101/restservice"); WebTarget resourceWebTarget; resourceWebTarget = target.path("resources/helloworld"); Invocation.Builder invocationBuilder; invocationBuilder = resourceWebTarget.request( MediaType.TEXT_PLAIN_TYPE); Response response = invocationBuilder.get(); System.out.println(response.getStatus()); System.out.println(response.readEntity(String.class)); ... } ... }
詳細は、Jersey 2.22 User Guideの「Client API」を参照してください。
スタンドアロン・クライアントからのRESTful Webサービスの呼出し
Oracle Fusion MiddlewareまたはWebLogic Serverがローカルにインストールされていない環境からRESTful Webサービスを呼び出す場合、CLASSPATHにOracle Fusion MiddlewareまたはWebLogic Serverクラスの完全なセットがなくても、スタンドアロン・クライアントJARファイルを使用してWebサービスを呼び出すことができます。
スタンドアロンRESTful Webサービス・クライアントJARは、基本的なJAX-RSのクライアント側の機能およびOWSMセキュリティ・ポリシーをサポートしています。
クライアント・アプリケーションでスタンドアロンのRESTful Webサービス・クライアントJARファイルを使用するには、次のステップを実行します。
-
Oracle JDeveloperなど好みのIDEを使用して、Java SEクライアントを作成します。Oracle JDeveloperによるアプリケーションの開発のWebサービスの開発と保護に関する項を参照してください。
-
ファイル
ORACLE_HOME
/oracle_common/modules/clients/com.oracle.jersey.fmw.client.jar
を、Oracle Fusion Middlewareをホストするコンピュータからクライアント・コンピュータにコピーします。ORACLE_HOME
は、Oracle Fusion Middlewareのインストール時にOracleホームに指定したディレクトリです。たとえば、クライアント・アプリケーションで使用している他のクラスが格納されているディレクトリにファイルをコピーします。
-
JARファイルをCLASSPATHに追加します。
ノート:
CLASSPATHには、スタンドアロン・クライアントJARファイルで使用されるAntクラスのサブセットを含むJARファイル(
ant.jar
)が確実に格納されるようにしてください。このJARファイルは通常、Antディストリビューションのlib
ディレクトリ内にあります。 -
Oracle Web Services Manager (OWSM)ポリシーの環境を構成します。このステップは省略可能で、RESTful Webサービス・クライアントにOWSMセキュリティ・ポリシーをアタッチする場合にのみ必要です。
必要な構成ステップは、アタッチされるポリシーのタイプによって異なります。以下に例を示します。その他の構成要件については、『Oracle Platform Security Servicesによるアプリケーションの保護』のOPSSを使用するためのJava SEアプリケーションの構成に関する項を参照してください。
例: 基本認証
たとえば、
oracle/wss_http_token_client_policy
セキュリティ・ポリシーを使用して基本認証をサポートするには、次のステップを実行します。-
jps-config-jse.xml
ファイルおよびaudit-store.xml
ファイルを、domain_home
/config/fmwconfig
ディレクトリ(domain_home
はドメインの名前と場所)から、RESTfulクライアントにアクセス可能な場所にコピーします。 -
ステップ2でファイルをコピーした場所にウォレット(
cwallet.sso
)を作成します。このウォレットには、oracle.wsm.security
という名前のマップと、クライアント・アプリケーションが使用する資格証明キー名(たとえばweblogic-csf-key
)を定義します。ファイル
cwallet.sso
の場所は、構成ファイルjps-config-jse.xml
の要素<serviceInstance>
で指定します。Oracle Platform Security Servicesによるアプリケーションの保護で、ファイル資格証明ストアの使用を参照してください。 -
Javaコマンド・ラインで次のプロパティを渡して、ステップ1でコピーしたJPS構成ファイルを定義します。
-Doracle.security.jps.config=<pathToConfigFile>
Oracle Platform Security Servicesによるアプリケーションの保護で、Java SEアプリケーションのセキュリティについてを参照してください。
例: SSL
たとえば、SSLポリシーをサポートするには、次のステップを実行します。
-
jps-config-jse.xml
ファイルおよびaudit-store.xml
ファイルを、domain_home
/config/fmwconfig
ディレクトリ(domain_home
はドメインの名前と場所)から、RESTfulクライアントにアクセス可能な場所にコピーします。 -
Javaコマンド・ラインで次のプロパティを渡して、ステップ1でコピーしたJPS構成ファイルを定義します。
ステップ1でコピーしたJPS構成ファイルを定義する:
-Doracle.security.jps.config=<pathToConfigFile>
Oracle Platform Security Servicesによるアプリケーションの保護で、Java SEアプリケーションのセキュリティについてを参照してください。
信頼できる証明書を含むトラスト・ストアを定義する:
-Djavax.net.ssl.trustStore=<trustStore>
Oracle Fusion Middlewareの管理で、LDAPセキュリティ・ストアへの一方向SSLの設定を参照してください。
トラスト・ストアのパスワードを定義する:
-Djavax.net.ssl.trustStorePassword=<password>
-