検索

16.2. Web サービスサブシステムを設定します

download PDF
JBoss EAP 6 にデプロイされた Web サービスの動作を制御する Web サービスサブシステムでは、多くの設定オプションを使用できます。管理 CLI スクリプトの各要素を変更するコマンド (EAP_HOME/bin/jboss-cli.sh または EAP_HOME/bin/jboss-cli.bat) が提供されています。スタンドアロンサーバーのコマンドの /profile= default 部分を削除するか、default を設定するプロファイルの名前に置き換えます。

公開されたエンドポイントアドレス

エンドポイントで公開された WSDL コントラクトの <soap:address> 要素を書き換えることができます。この機能を使用して、各エンドポイントのクライアントにアドバタイズされるサーバーアドレスを制御できます。次の各オプション要素は、要件に合わせて変更できます。アクティブな WS 展開がある場合、これらの要素のいずれかを変更するには、サーバーをリロードする必要があります。

表16.1 公開されたエンドポイントアドレスの設定要素
要素 Description CLI コマンド
modify-wsdl-address
常に WSDL アドレスを変更するかどうか。true の場合、<soap:address> の内容は常に上書きされます。false の場合、<soap:address> のコンテンツは、有効な URL でない場合にのみ上書きされます。使用される値は、以下で説明する wsdl-hostwsdl-port、および wsdl-secure-port になります。
/profile=default/subsystem=webservices/:write-attribute(name=modify-wsdl-address,value=true)
wsdl-host
<soap:address> の書き換えに使用するホスト名/IP アドレス。wsdl-host が文字列 jbossws.undefined.host に設定されている場合、<soap:address> を書き換えるときにリクエスターのホストが使用されます。
/profile=default/subsystem=webservices/:write-attribute(name=wsdl-host,value=10.1.1.1)
wsdl-port SOAP アドレスの書き換えに使用される HTTP ポートを明示的に定義する整数。未定義の場合、HTTP ポートは、インストールされている HTTP コネクターのリストを照会することによって識別されます。
/profile=default/subsystem=webservices/:write-attribute(name=wsdl-port,value=8080)
wsdl-secure-port SOAP アドレスの書き換えに使用される HTTPS ポートを明示的に定義する整数。未定義の場合、HTTPS ポートは、インストールされている HTTPS コネクターのリストを照会することによって識別されます。
/profile=default/subsystem=webservices/:write-attribute(name=wsdl-secure-port,value=8443)

事前定義されたエンドポイント設定

エンドポイントの実装で参照できるエンドポイント設定を定義できます。これを使用する 1 つの方法は、アノテーションが付いた特定のエンドポイント設定でマークされた WS エンドポイントに特定のハンドラーを追加することです。@org.jboss.ws.api.annotation.EndpointConfig

JBoss EAP 6 にはデフォルトが含まれていますStandard-Endpoint-Config。カスタム設定の例、Recording-Endpoint-Config、も含まれています。これは、レコーディングハンドラーの例を提供します。TheStandard-Endpoint-Config他の設定に関連付けられていないエンドポイントに自動的に使用されます。
読むにはStandard-Endpoint-Config管理 CLI を使用して、次のコマンドを使用します。
/profile=default/subsystem=webservices/endpoint-config=Standard-Endpoint-Config/:read-resource(recursive=true,proxies=false,include-runtime=false,include-defaults=true)

エンドポイント設定

管理 API で endpoint-config と呼ばれるエンドポイント設定には、特定のエンドポイントに適用される pre-handler-chainpost-handler-chain、およびいくつかのプロパティーが含まれます。次のコマンドは、エンドポイント設定を読み取り、追加します。

例16.1 エンドポイント設定を読み取る

/profile=default/subsystem=webservices/endpoint-config=Recording-Endpoint-Config:read-resource

例16.2 エンドポイント設定を追加する

/profile=default/subsystem=webservices/endpoint-config=My-Endpoint-Config:add

ハンドラーチェーン

各エンドポイント設定は、PRE および POST ハンドラーチェーンに関連付けることができます。各ハンドラーチェーンには、JAXWS 準拠のハンドラーが含まれる場合があります。アウトバウンドメッセージの場合、PRE ハンドラーチェーンハンドラーは、@HandlerChain アノテーションなどの標準の JAX-WS を使用してエンドポイントにアタッチされたハンドラーの前に実行されます。POST ハンドラーチェーンハンドラーは、通常のエンドポイントハンドラーの後に実行されます。受信メッセージには、逆が適用されます。JAX-WS は XML ベースの Web サービスの標準 API で、で http://jcp.org/en/jsr/detail?id=224 説明されています。

ハンドラーチェーンには、チェーンの開始をトリガーするプロトコルを設定する protocol-bindings 属性を含めることもできます。

例16.3 ハンドラーチェーンを読む

/profile=default/subsystem=webservices/endpoint-config=Recording-Endpoint-Config/pre-handler-chain=recording-handlers:read-resource

例16.4 ハンドラーチェーンの追加

/profile=default/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-handlers:add(protocol-bindings="##SOAP11_HTTP")

ハンドラー

JAXWS ハンドラーは、ハンドラーチェーン内の子要素 ハンドラー です。ハンドラーは、ハンドラークラスの完全修飾クラス名である クラス 属性を取ります。エンドポイントがデプロイされると、参照デプロイメントごとにそのクラスのインスタンスが作成されます。モジュールのデプロイメントクラ出力ダーまたはクラ出力ダーのいずれかorg.jboss.as.webservices.server.integrationハンドラークラスをロードできる必要があります。

例16.5 ハンドラーを読む

/profile=default/subsystem=webservices/endpoint-config=Recording-Endpoint-Config/pre-handler-chain=recording-handlers/handler=RecordingHandler:read-resource

例16.6 ハンドラーの追加

/profile=default/subsystem=webservices/endpoint-config=My-Endpoint-Config/post-handler-chain=my-handlers/handler=foo-handler:add(class="org.jboss.ws.common.invocation.RecordingServerHandler")

Web サービスランタイム情報

エンドポイント自体にクエリーを実行することで、Web コンテキストや WSDLURL などの Web サービスに関するランタイム情報を表示できます。* 文字を使用して、すべてのエンドポイントを一度に照会できます。次の例は、管理対象ドメイン内のサーバーとスタンドアロンサーバーの両方に対するコマンドを示しています。

例16.7 管理対象ドメイン内のサーバー上のすべての Web サービスエンドポイントに関するランタイム情報を表示する

このコマンドは、物理ホスト マスター でホストされ、管理対象ドメインで実行されている server-one という名前のサーバー上のすべてのエンドポイントに関する情報を表示します。
/host=master/server=server-one/deployment="*"/subsystem=webservices/endpoint="*":read-resource

例16.8 スタンドアロンサーバー上のすべての Web サービスエンドポイントに関するランタイム情報を表示する

このコマンドは、スタンドアロンサーバー上のすべての Web サービスエンドポイントに関する情報を表示します。
/deployment="*"/subsystem=webservices/endpoint="*":read-resource

例16.9 エンドポイント情報の例

以下は、架空の出力を表示する例です。
{
   "outcome" => "success",
   "result" => [{
       "address" => [
           ("deployment" => "jaxws-samples-handlerchain.war"),
           ("subsystem" => "webservices"),
           ("endpoint" => "jaxws-samples-handlerchain:TestService")
       ],
       "outcome" => "success",
       "result" => {
           "class" => "org.jboss.test.ws.jaxws.samples.handlerchain.EndpointImpl",
           "context" => "jaxws-samples-handlerchain",
           "name" => "TestService",
           "type" => "JAXWS_JSE",
           "wsdl-url" => "http://localhost:8080/jaxws-samples-handlerchain?wsdl"
       }
   }]
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.