Oracle® Fusion Middleware Oracle WebLogic Server Web サービス リファレンス 11g リリース 1 (10.3.1) B55558-01 |
|
戻る |
以下の節では、WebLogic 固有の Web サービス デプロイメント記述子ファイル weblogic-webservices.xml
に関する情報を提供します。
Web サービスで標準の Java EE デプロイメント記述子は webservices.xml
といいます。このファイルは、WebLogic Server にデプロイされる Web サービスのセット、およびコンテナ リソースとその他のサービスに対する依存関係を指定します。このファイルの詳細については、http://java.sun.com/xml/ns/j2ee/j2ee_web_services_1_1.xsd
にある「Web サービス XML スキーマ」を参照してください。
標準の Java EE webservices.xml
デプロイメント記述子ファイルと同じ役割を持つ WebLogic デプロイメント記述子ファイルが weblogic-webservices.xml
です。このファイルには、デプロイされた Web サービスの呼び出しに使用する URL や、タイムアウト値などのコンフィグレーション設定など、WebLogic Web サービスに関する WebLogic 固有の情報が格納されます。
この 2 つのデプロイメント記述子ファイルは、Web サービスを格納している Java EE アーカイブの同じ場所にあります。具体的には、以下のとおりです。
Java クラスを実装した Web サービスの場合、Web サービスは Web アプリケーション WAR ファイルとしてパッケージ化され、デプロイメント記述子は WEB-INF ディレクトリに格納される。
ステートレス セッション EJB 実装 Web サービスの場合、Web サービスは EJB JAR ファイルとしてパッケージ化され、デプロイメント記述子は META-INF ディレクトリに格納される。
weblogic-webservices.xml
ファイルの構造は、アーカイブ内に格納されている Web サービスをどのようにリストして識別するかという点で Java EE webservices.xml
ファイルの構造と似ています。たとえば、どちらのファイルも、アーカイブ内の各 Web サービスに対して、対応するルート要素 (Java EE webservices.xml
ファイルの場合は <webservices>
、weblogic-webservices.xml
ファイルの場合は <weblogic-webservices>
) の <webservice-description>
子要素を持っています。
この節の説明は、情報提供のみを目的としています。通常、コンフィグレーションの更新は、Administration Console または JWS アノテーションを使用して行います。どちらのデプロイメント記述子ファイルも直接編集する必要はありません。
注意 : weblogic-webservices.xml ファイルの 2 つの要素 (login-config と transport-guarantee) のデータ型定義が、web.xml ファイルの J2EE スキーマからインポートされます。この 2 つの要素とデータ型の詳細については、http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd にある「サーブレット デプロイメント記述子スキーマ」を参照してください。 |
以下の図では、weblogic-webservices.xml
デプロイメント記述子ファイルの要素の階層構造を示します。
weblogic-webservices.xml
デプロイメント記述子を説明する XML スキーマ ファイルについては、http://xmlns.oracle.com/weblogic/weblogic-webservices/1.0/weblogic-webservices.xsd
を参照してください。
以下に、単純な weblogic-webservices.xml
デプロイメント記述子の例を示します。
<?xml version='1.0' encoding='UTF-8'?> <weblogic-webservices xmlns="http://xmlns.oracle.com/weblogic/weblogic-webservices"> <webservice-description> <webservice-description-name>MyService</webservice-description-name> <port-component> <port-component-name>MyServiceServicePort</port-component-name> <service-endpoint-address> <webservice-contextpath>/MyService</webservice-contextpath> <webservice-serviceuri>/MyService</webservice-serviceuri> </service-endpoint-address> <reliability-config> <inactivity-timeout>P0DT600S</inactivity-timeout> <base-retransmission-interval>P0DT3S</base-retransmission-interval> <retransmission-exponential-backoff>true </retransmission-exponential-backoff> <acknowledgement-interval>P0DT3S</acknowledgement-interval> <sequence-expiration>P1D</sequence-expiration> <buffer-retry-count>3</buffer-retry-count> <buffer-retry-delay>P0DT5S</buffer-retry-delay> </reliability-config> </port-component> </webservice-description> </weblogic-webservices>
次の節では、weblogic-webservices.xml
デプロイメント記述子ファイルの各要素について説明します。
<reliability-config>
要素の <acknowledgement-interval>
子要素は、送り先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔を指定します。
送り先エンドポイントは、ソース エンドポイントからメッセージを受信した直後に、返されたメッセージに対する確認応答を送信できます。また、スタンドアロンの確認応答として個別に確認応答を送信することもできます。返されたメッセージに対して確認応答を送信できない場合、送り先エンドポイントは、スタンドアロンの確認応答を送信するまで、確認応答の間隔に設定した時間範囲内で待機することがあります。確認されたメッセージがない場合、送り先エンドポイントは確認応答を送信しない可能性があります。
この値は、次のような XML スキーマの期間を表す字句形式に従った正の値でなければなりません。
PYMDTHS
次の表では、期間形式フィールドについて説明します。
この値のデフォルトは P0DT3S
(3 秒) です。
<reliability-config>
要素の <base-retransmission-interval>
子要素は、RM 送り先にメッセージの再送信を行うまでの時間間隔を指定します。
ソース エンドポイントが、指定した間隔内で所定のメッセージの確認応答を受信しなかった場合、ソース エンドポイントはメッセージを再送信します。ソース エンドポイントは、メッセージのシーケンスの有効期間内の任意の時点で、この再送信間隔を変更することがあります。
この要素を <retransmission-exponential-backoff>
要素と組み合わせて使用すると、再送信間隔を調整するアルゴリズムを指定できます。
この値は、次のような XML スキーマの期間を表す字句形式に従った正の値でなければなりません。
PYMDTHS
期間の形式については、「表 6-1」を参照してください。この値のデフォルトは P0DT3S
(3 秒) です。
<reliability-config>
要素の <buffer-retry-count>
子要素は、送り先の WebLogic Server インスタンスの JMS キューが、信頼性のあるオペレーションを呼び出すクライアントから Web サービスの実装にメッセージを配信する際の再試行回数を指定します。この値のデフォルトは 3
です。
<reliability-config>
要素の <buffer-retry-delay>
子要素は、メッセージ配信の再試行間隔を指定します。再試行間隔は、JMS キューにあるクライアントの要求メッセージと Web サービスの実装へのメッセージ配信までの間隔。
この値は、次のような XML スキーマの期間を表す字句形式に従った正の値でなければなりません。
PYMDTHS
期間の形式については、「表 6-1」を参照してください。この値のデフォルトは P0DT5S
(5 秒) です。
<port-component>
要素の <callback-protocol>
子要素は、イベントをクライアントに通知するコールバックに使用されるプロトコルを指定します。有効な値は、http
、https
、または jms
です。
内部使用のみに対応しています。
内部使用のみに対応しています。
<wsdl>
要素の <exposed>
子要素は、Web サービスのデプロイ時に WSDL をパブリックにエクスポーズするかどうかを示すブール属性です。
<port-component>
要素の <http-flush-response>
子要素は、信頼性のある応答をフラッシュするかどうかを指定します。この値のデフォルトは true
。
<port-component>
要素の <http-response-buffersize>
子要素は、サーバでの要求のキャッシュに使用される信頼性のある応答バッファのサイズを指定します。この値のデフォルトは 0
です。
<j2ee:login-config>
要素は、使用する認証方式、このアプリケーションで使用されるレルムの名前、およびフォームによるログイン機能で必要になる属性を指定します。
<j2ee:login-config>
要素の XML スキーマ データ型は <j2ee:login-configType>
で、標準 web.xml
デプロイメント記述子を記述する Java EE スキーマで定義されます。詳細なリファレンス情報については、「http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
」を参照してください。
<reliability-config>
要素の <inactivity-timeout>
子要素は、非アクティブ間隔を指定します。指定した間隔で、エンドポイント (RM 送信元と RM 送り先) がアプリケーションのメッセージまたは制御メッセージを受け取らなければ、エンドポイントは RM シーケンスが非アクティブなため終了したものと見なす場合があります。
この値は、次のような XML スキーマの期間を表す字句形式に従った正の値でなければなりません。
PnYnMnDTnHnMnS
期間の形式については、「表 6-1」を参照してください。この値のデフォルトは P0DT600S
(600 秒) です。
<webservice-security>
要素の <mbean-name>
子要素は、デプロイメント記述子ファイルで記述されている Web サービスに関連付けられた Web サービス セキュリティ コンフィグレーション (WebserviceSecurityMBean
をインスタンス化したもの) の名前を指定します。デフォルト コンフィグレーション名は default_wss
です。
関連付けられたセキュリティ コンフィグレーションでは、ID の認証に X.509 証明書を使用するかどうか、パスワード ダイジェストを使用するかどうか、暗号化やデジタル署名にキーストアを使用するかどうかなどを指定します。
Web サービスを問題なく呼び出すことができるようにするには、Administration Console であらかじめセキュリティ コンフィグレーション (デフォルト コンフィグレーションも含む) を作成しておく必要があります。
注意 : この要素で記述される Web サービス セキュリティ コンフィグレーションは、weblogic-webservices.xml ファイルに格納されているすべての Web サービスに提供されます。jwsc Ant タスクは、必ず独自の JAR または WAR ファイルに Web サービスをパッケージ化するので、常に jwsc Ant タスクを使用して Web サービスを生成する場合、この制限は問題となりません。ただし、weblogic-webservices.xml デプロイメント記述子を手動で更新し、Web サービスの記述を追加した場合、別のセキュリティ コンフィグレーションを別のサービスに関連付けることはできません。 |
<port-component>
要素は、Web サービスのポートの記述に使用する他の要素のホルダです。<port-component>
要素の子要素では、WebLogic Server にデプロイされた Web サービスの呼び出しに使用するコンテキスト パスおよびサービス URI など、Web サービスのポートの WebLogic 固有の特性を指定します。
<port-component>
要素の <port-component-name>
子要素は、WSDL ポートの内部名を指定します。この要素の値は、単一の weblogic-webservices.xml
ファイル内にあるすべての <port-component-name>
要素に対してユニークなものである必要があります。
<reliability-config>
要素は、信頼性のあるメッセージングのコンフィグレーション要素をグループ化します。<reliability-config>
要素の子要素は、信頼性のあるメッセージングの再送信間隔やタイムアウト間隔など、実行時コンフィグレーション値を指定します。
<reliability-config>
要素の <retransmission-exponential-backoff>
子要素は、メッセージの再送信の間隔を、指数関数的なバックオフ アルゴリズムを使用して調整するかどうかを指定するブール属性です。
この要素は、<base-retransmission-interval>
と一緒に使用します。送り先エンドポイントが、<base-retransmission-interval>
で指定した時間間隔でメッセージのシーケンスを確認応答しなかった場合、メッセージが引き続き確認されなければ、連続再送信のタイミングに対して、ソース エンドポイントは指数関数的なバックオフ アルゴリズムを使用します。
指数関数的なバックオフ アルゴリズムは、連続再送信の間隔が、基本の再送信間隔を基に指数的に増えるように指定します。たとえば、基本の再送信間隔が 2 秒で、指数関数的なバックオフ要素が設定されている場合、連続再送信の間隔は、メッセージが確認されなければ、2、4、8、16、32 秒というように増えていきます。
デフォルト値は false
であり、連続再送信の間隔は指数的に増えず、同じ値が維持されます。
<reliability-config>
要素の <sequence-expiration>
子要素は、アクティビティにかかわらず、シーケンスが期限切れになるまでの時間を指定します。
この値は、次のような XML スキーマの期間を表す字句形式に従った正の値でなければなりません。
PnYnMnDTnHnMS
期間の形式については、「表 6-1」を参照してください。この値のデフォルトは P1D
(1 日) です。
<service-endpoint-address>
要素は、WebLogic 固有のコンテキスト パスとサービス URI の値をグループ化します。この値をまとめると、Web サービスのエンドポイントのアドレス、または WebLogic Server にデプロイされた Web サービスを呼び出す URL が構成されます。
これらの値は、<webservice-contextpath>
子要素および <webservice-serviceuri>
子要素で指定します。
<port-component>
要素の <stream-attachments>
子要素は、WebLogic Web サービス ランタイムで、Web サービスのすべてのメソッド パラメータを読み込む際に Streaming API を使用するかどうかを指定するブール値です。これによって、特に画像など、大きなパラメータの場合に Web サービス オペレーションの呼び出しのパフォーマンスが向上します。
同じ Web サービスで次の機能も使用している場合、このアノテーションは使用できません。
会話
信頼性のあるメッセージング
JMS 転送
クライアント アプリケーションと呼び出し対象の Web サービスとの間のプロキシ サーバ
j2ee:transport-guarantee
要素は、Web サービスを呼び出すクライアント アプリケーションと WebLogic Server との間の通信のタイプを指定します。
この要素の値は NONE、INTEGRAL、CONFIDENTIAL のいずれかです。NONE は、アプリケーションが転送の保証を必要としていないことを示します。INTEGRAL は、クライアントとサーバの間で、転送中にデータが変更されない方法でデータを転送する必要があることを示します。CONFIDENTIAL は、転送中にデータの中味を覗かれないようにデータを転送する必要があることを示します。ほとんどの場合、INTEGRAL フラグまたは CONFIDENTIAL フラグは、SSL を使用する必要があることを示します。
j2ee:transport-guarantee
要素の XML スキーマ データ型は j2ee:transport-guaranteeType
で、標準 web.xml
デプロイメント記述子を記述する Java EE スキーマで定義されます。詳細なリファレンス情報については、「http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
」を参照してください。
<port-component>
要素の <transaction-timeout>
子要素は、Web サービス オペレーションがトランザクションの一部として実行されている場合、現在のトランザクションのタイムアウト値を指定します。
この値は、次のような XML スキーマの期間を表す字句形式に従った正の値でなければなりません。
PnYnMnDTnHnMnS
期間の形式については、「表 6-1」を参照してください。この値のデフォルトは P0DT3S
(3 秒) です。
この値のデフォルトは 30
秒です。
<port-component>
要素の <validate-request>
子要素は、信頼性のある要求を検証するかどうかを指定するブール値です。
この値は、次のような XML スキーマの期間を表す字句形式に従った正の値でなければなりません。
PnYnMnDTnHnMnS
期間の形式については、「 表 6-1」を参照してください。この値のデフォルトは P0DT3S
(3 秒) です。
<weblogic-webservices>
要素は、WebLogic 固有の Web サービス デプロイメント記述子 (weblogic-webservices.xml
) のルート要素です。
この要素は、Java EE コンポーネント アーカイブに格納されている Web サービスのセットを指定します。デプロイメント記述子も、このアーカイブに格納されています。アーカイブは、EJB JAR ファイル (ステートレス セッション EJB 実装 Web サービスの場合) または WAR ファイル (Java クラス実装 Web サービスの場合) です。
<webservice-contextpath>
要素は、Web サービスの呼び出しに使用する URL のコンテキスト パス部分を指定します。WebLogic Server にデプロイされた Web サービスを呼び出す URL は次のとおりです。
http://host:port/contextPath/serviceURI
各要素の説明は次のとおりです。
host は、WebLogic Server が動作しているホスト コンピュータ。
port は、WebLogic Server がリスンしているポートのアドレス。
contextPath は、この要素の値。
serviceURI は、 webservice-serviceuri 要素の値。
jwsc
Ant タスクを使用して JWS ファイルから Web サービスを生成する場合、<webservice-contextpath>
要素の値は、WebLogic 固有の @WLHttpTransport
アノテーション、または jwsc
の <WLHttpTransport>
子要素の contextPath
属性から取得されます。
<webservice-description>
要素は、Web サービスの記述に使用する他の要素のホルダです。<webservice-description>
要素は、WSDL ドキュメントで定義された WSDL ポートに関連付けられているポート コンポーネントのセット (1 つまたは複数の <port-component>
子要素で指定) を定義します。
1 つの weblogic-webservices.xml
ファイル内に、それぞれがアーカイブ内の特定のステートレス セッション EJB または Java クラスに対応する複数の <webservice-description>
要素が定義されている場合があります。ステートレス セッション EJB に対応しているか Java クラスに対応しているかは、Web サービスの実装によって異なります。つまり、EJB JAR には Web サービスを実装する EJB、WAR ファイルには Java クラスが格納されています。
<webservice-description-name>
要素は、Web サービスの内部名を指定します。この要素の値は、単一の weblogic-webservices.xml
ファイル内にあるすべての <webservice-description-name>
要素に対してユニークなものである必要があります。
weblogic-webservices.xml
デプロイメント記述子の要素のうち、セキュリティに関連するものをすべてグループ化するための要素です。
<webservice-serviceuri>
要素は、Web サービスの呼び出しに使用する URL の Web サービス URI 部分を指定します。WebLogic Server にデプロイされた Web サービスを呼び出す URL は次のとおりです。
http://host:port/contextPath/serviceURI
各要素の説明は次のとおりです。
host は、WebLogic Server が動作しているホスト コンピュータ。
port は、WebLogic Server がリスンしているポートのアドレス。
contextPath は、 webservice-contextpath 要素の値。
serviceURI は、この要素の値。
jwsc
Ant タスクを使用して JWS ファイルから Web サービスを生成する場合、<webservice-serviceuri>
要素の値は、WebLogic 固有の @WLHttpTransport
アノテーション、または jwsc
の <WLHttpTransport>
子要素の serviceURI
属性から取得されます。
<webservice-type>
要素は、Web サービスが JAX-WS 標準に基づくか、JAX-RPC 標準に基づくかを指定します。有効な値は、JAXWS
および JAXRPC
です。この値のデフォルトは JAXRPC
です。
weblogic-webservices.xml
デプロイメント記述子の要素のうち、WSDL に関連するものをすべてグループ化するための要素です。
<wsdl-publish-file>
要素は、HTTP を介してアクセス可能な標準 WSDL ファイルに加え、デプロイされた Web サービスの WSDL ファイルのハードコピーのパブリッシュ先となるディレクトリ (Web サービスをホストしているコンピュータ上にあります) を指定します。
たとえば、Web サービスが EJB で実装され、WSDL ファイルが、JAR を基準にした、EJB JAR ファイルの以下のディレクトリにあるとします。
META-INF/wsdl/a/b/Fool.wsdl
さらに、weblogic-webservices.xml
ファイルに、指定した Web サービスの以下の要素が含まれているとします。
<wsdl-publish-file>d:/bar</wsdl-publish-file>
この場合、WebLogic Server が Web サービスをデプロイすると、サーバは、標準の HTTP の場所に WSDL ファイルをパブリッシュするとともに、サーバが動作しているコンピュータの以下のディレクトリに WSDL ファイルのコピーを格納します。
d:/bar/a/b/Foo.wsdl
注意 : この要素は、Web サービスを呼び出すクライアント アプリケーションがローカル ファイル システムまたは FTP で WSDL にアクセスする必要がある場合にのみ指定します。通常、『Oracle Fusion Middleware JAX-WS を使用した Oracle WebLogic Server Web サービス入門』の「Web サービスの WSDL の参照」で説明しているように、クライアント アプリケーションは HTTP を使用して WSDL にアクセスします。 |
この要素の値には、ディレクトリの絶対パス名を指定する必要があります。このディレクトリは、Web サービスをデプロイする WebLogic Server インスタンスまたはクラスタをホストしているすべてのマシンに存在している必要があります。