Oracle® Fusion Middleware Oracle WebLogic Server WebLogic Webサービス・リファレンス 11gリリース1 (10.3.6) B61641-04 |
|
前 |
この章では、WebLogic Webサービス・デプロイメント記述子ファイルweblogic-webservices.xml
に関する情報を提供します。
この章の内容は以下のとおりです。
Webサービスの標準Java EEデプロイメント記述子はwebservices.xml
です。このファイルは、WebLogic ServerにデプロイされるWebサービスのセット、およびコンテナ・リソースとその他のサービスに対する依存関係を指定します。このファイルの詳細は、WebサービスXMLスキーマ(http://java.sun.com/xml/ns/j2ee/j2ee_web_services_1_1.xsd
)を参照してください。
標準の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>
子要素を持っています。
この節の説明は、情報提供のみを目的としています。通常、構成の更新は、管理コンソールまたは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.1/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> <wsat-config> <version>WSAT10</version> <flowType>SUPPORTS</flowType> </wsat-config> <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
期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT3S
(3秒)です。
<reliability-config>
要素の<buffer-retry-count>
子要素は、宛先のWebLogic ServerインスタンスのJMSキューが、信頼性のある操作を呼び出すクライアントからWebサービスの実装にメッセージを配信する際の再試行回数を指定します。この値のデフォルトは3
です。
<reliability-config>
要素の<buffer-retry-delay>
子要素は、メッセージ配信の再試行間隔を指定します。再試行間隔は、JMSキューにあるクライアントのリクエスト・メッセージとWebサービスの実装へのメッセージ配信までの間隔。
この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。
PYMDTHS
期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT5S
(5秒)です。
<port-component>
要素の<callback-protocol>
子要素は、イベントをクライアントに通知するコールバックに使用されるプロトコルを指定します。有効な値は、http
、https
、またはjms
です。
内部使用のみに対応しています。
内部使用のみに対応しています。
<wsdl>
要素の<exposed>
子要素は、Webサービスのデプロイ時にWSDLをパブリックに公開するかどうかを示すブール属性です。
<wsat-config>
要素の<flowtype>
子要素は、Webサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうかを指定します。
有効な値は、NEVER
、SUPPORTS
およびMANDATORY
です。デフォルト値はSUPPORTS
です。これらの値とその意味、および@TransactionAttribute
アノテーションを使用するEJB型のWebサービスに対してWebサービス原子性トランザクションを構成する際の有効な値の組合せの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービスに対するWebサービス原子性トランザクションの有効化に関する項でフロー・タイプの値をまとめた表を参照してください。
Webサービス原子性トランザクションの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービス原子性トランザクションの使用に関する項を参照してください。
<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
期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT600S
(600秒)です。
<webservice-security>
要素の<mbean-name>
子要素は、デプロイメント記述子ファイルで記述されているWebサービスに関連付けられたWebサービス・セキュリティ構成(WebserviceSecurityMBean
をインスタンス化したもの)の名前を指定します。デフォルト構成名はdefault_wss
です。
関連付けられたセキュリティ構成では、IDの認証にX.509証明書を使用するかどうか、パスワード・ダイジェストを使用するかどうか、暗号化やデジタル署名にキーストアを使用するかどうかなどを指定します。
Webサービスを問題なく呼び出すことができるようにするには、管理コンソールであらかじめセキュリティ構成(デフォルト構成も含む)を作成しておく必要があります。
注意: この要素で記述される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
期間の形式については、「表7-1」を参照してください。この値のデフォルトはP1D
(1日)です。
<service-endpoint-address>
要素は、Webサービス・エンドポイントのアドレスを構成するWebLogic固有のコンテキスト・パスとサービスURIの値、または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
期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT3S
(3秒)です。
この値のデフォルトは30
秒です。
<port-component>
要素の<validate-request>
子要素は、信頼性のあるリクエストを検証するかどうかを指定するブール値です。
この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。
PnYnMnDTnHnMnS
期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT3S
(3秒)です。
<wsat-config>
要素の<version>
子要素は、Webサービスおよびクライアントに対して使用されるWebサービス原子性トランザクション調整コンテキストのバージョンを指定します。クライアントの場合、アウトバウンド・メッセージに使用されるバージョンのみを指定します。指定した値は、トランザクション全体で一致している必要があります。
有効な値は、WSAT10
、WSAT11
、WSAT12
およびDEFAULT
です。WebサービスのDEFAULT
値は、(インバウンド・リクエストで起動された)3つのバージョンすべてです。Webサービス・クライアントのDEFAULT
値はWSAT10
です。
Webサービス原子性トランザクションの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービス原子性トランザクションの使用に関する項を参照してください。
<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
です。
<wsat-config>
要素は、クラス・レベルまたは同期メソッド・レベルでWebサービス原子性トランザクションの構成を有効化し、構成します。<wsat-config>
要素の子要素は、サポートされているWS-AtomicTransactionのバージョン、およびWebサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうかを指定します。
Webサービス原子性トランザクションの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービス原子性トランザクションの使用に関する項を参照してください。
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 WebLogic Server JAX-WS Webサービス・スタート・ガイド』のWebサービスのWSDLの参照に関する項で説明しているように、クライアント・アプリケーションは通常、HTTPを使用してWSDLにアクセスします。 |
この要素の値には、ディレクトリのフルパス名を指定する必要があります。このディレクトリは、WebサービスをデプロイするWebLogic Serverインスタンスまたはクラスタをホストしているすべてのマシンに存在している必要があります。