2 WebLogic Server RESTサービスとHelidonの統合
JAX-RSの使用におけるHelidonとWebLogic Serverの主な違いは、サポートされているJakarta仕様のバージョンです。WebLogic ServerがJakarta EE 8をサポートするのに対し、HelidonはJAX-RSまたはJakarta EE 9.1の新しいJakarta RESTful Webサービスをサポートします。この2つのバージョンのJakarta EEの最も顕著な違いは、パッケージ名の変更です。javax
がjakarta
に置き換わっています。
Helidon 3.xではjakarta
ネームスペースからのインポートを使用する必要がありますが、WebLogic ServerおよびHelidon 2.xの場合は、同じJAX-RSコードにjavax
を使用する必要があります。
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
この章の内容は次のとおりです。
- 前提条件
WebLogic ServerをRESTサービス用にHelidonと統合する場合、すでにWebLogic Kubernetes Operator (Operator)を使用してWebLogic ServerおよびHelidonをKubernetesクラスタにデプロイしていることが前提となります。 - JAX-RSサーバーの使用
JAX-RSリソースは、特定のパスのルートおよびHTTPメソッドを表す注釈付きメソッドを含む単純なBeanです。 - JAX-RSクライアントの使用
JAX-RSは、RESTfulリソースをコールするための便利なクライアントAPIを提供します。クライアントを使用すると、単純なビルダー・パターンAPIを使用してRESTfulリクエスト・コールを準備して実行できます。
前提条件
WebLogic Serverをデプロイするには、次のものがあることを確認してください:
- Operatorに関する十分な理解。WebLogic Kubernetes Operatorを参照してください。
- インストールと構成が済んだOperator。Model in Imageを参照してください。
Jakartaパッケージを含むWebLogic Server Javaクライアントをダウンロードするには、「Jakartaパッケージ名を使用したWebLogic Server Javaクライアントのダウンロード」を参照してください。
JAX-RSサーバーの使用
JAX-RSサンプル・リソース
@Path("/greet") (1)
public class GreetResource {
@Path("/hello")
@GET (2)
@Produces(MediaType.TEXT_PLAIN) (3)
public Response getHello() {
return Response.ok("Hello World!") (4)
.build();
}
}
前述の例の簡単な説明:
(1) リソースのパス。
(2) HTTPメソッド。
(3) 予期されるレスポンス・コンテンツ・タイプ。
(4) ステータスが200のテキスト・ペイロードを返します。
JAX-RSは、メッセージ本文ライター、リーダー、フィルタまたは例外マッパーを登録できる非常に強力なツールです。HelidonとWebLogicサーバーの両方で、Eclipse JerseyがJAX-RS実装として使用されます。Jersey User Guideを参照してください。
HelidonでのJAX-RS RESTfulリソースの作成およびデプロイの詳細は、JAX-RS applicationsを参照してください。
WebLogic ServerでのJAX-RSリソースの開発およびデプロイの詳細は、RESTful Webサービスの開発に関する項を参照してください。
JAX-RSクライアントの使用
JAX-RSは、RESTfulリソースをコールするための便利なクライアントAPIを提供します。クライアントを使用すると、単純なビルダー・パターンAPIを使用してRESTfulリクエスト・コールを準備して実行できます。
JAX-RSクライアントの例
Client client = ClientBuilder.newClient();
String res = client
.target("http://localhost:8080") (1)
.path("/greet") (2)
.request("text/plain") (3)
.get(String.class); (4) (5)
前述の例の簡単な説明:
(1) デフォルトのルートURLを使用して新しいWebTargetを作成します。
(2) 特定のコンテキスト・パスへのリクエストを準備します。
(3) 予期されるレスポンス・コンテンツ・タイプを設定します。
(4) GETリクエストを実行し、レスポンスを受信するまでブロックします。
(5) パラメータは、予期されるレスポンス・ペイロード・タイプを設定します。正しいレスポンス・ペイロード・タイプへの解析には、使用可能な本文リーダーが使用されます。
独自のメッセージ本文ライター、リーダー、フィルタまたは例外マッパーを登録することもできます。
HelidonでのJAX-RSクライアントの作成の詳細は、Jakarta REST (JAX-RS) Clientを参照してください。
WebLogic ServerでのJAX-RSクライアントの開発およびデプロイの詳細は、RESTful Webサービスの開発に関する項を参照してください。