WebLogic Web サービス プログラマーズ ガイド
WebLogic Web サービス デプロイメント記述子の要素
この章では、異なる形式を使用して web-services.xml
ファイルについて説明します。
web-services.xml の概要
web-services.xml
デプロイメント記述子ファイルには、1 つまたは複数の WebLogic Web サービスを記述する情報が入っています。この情報には、Web サービスのオペレーションを実装するバックエンド コンポーネント、パラメータおよび戻り値として使用される非組み込みデータ型、SOAP メッセージをインターセプトする SOAP メッセージ ハンドラなどの詳細情報が含まれます。他のすべてのデプロイメント記述子の場合と同様に、web-services.xml
も XML ファイルです。
階層図
次の図は、web-services.xml
要素の階層を示しています。
図 22-1 web-services.xml の要素階層
要素について
アルファベット順に構成された以降の節では、web-services.xml
ファイルの各要素を説明します。
さまざまなタイプの WebLogic Web サービス用の Web サービス デプロイメント記述子ファイルのサンプルについては、「異なるタイプの web-services.xml ファイルの調査」を参照してください。
clock-precision
Web サービスを呼び出すクライアント アプリケーションと WebLogic Server のクロックの同期の精度を記述します。WebLogic Server は、この値を使用して 2 つのクロック間のスキューの妥当なレベルを計算します。
この値は、ミリ秒単位で指定します。たとえば、クロックの精度が 1 分以内である場合、この要素の値は 60000 です。
この要素の値が SOAP リクエストの有効期限を上回る場合、クライアント アプリケーションは有効期限を正確に適用できないのでこのリクエストを拒否します。たとえば、クロック精度値が 60000 ミリ秒で、WebLogic Server が受信する SOAP メッセージの有効期限が 30000 ミリ秒の場合、60000 ミリ秒のクロック精度との不一致のため、メッセージの存続期間が 30000 ミリ秒を超える可能性があります。このため、WebLogic Server はメッセージを拒否します。この厳しい指定を緩めるには、<enforce-precision>
要素を false
に設定します。詳細については、「enforce-precision」を参照してください。
この要素は、<clocks-synchronized>
と一緒に指定する必要があります。
この要素のデフォルト値は 60000 です。
この要素は、属性を持ちません。 この要素は、<timestamp>
の子要素です。
clocks-synchronized
WebLogic Server が SOAP メッセージのタイムスタンプを処理するときに、Web サービスを呼び出すクライアント アプリケーションのクロックと WebLogic Server のクロックが同期していると見なすかどうかを指定します。
このプロパティの値が true
の場合、WebLogic Server は、WebLogic Web サービスを呼び出すクライアント アプリケーションからの SOAP リクエストの有効期限を (存在する場合は) 適用します。このため、タイム スタンプが期限切れになった場合、WebLogic Server は Web サービス オペレーションを呼び出しません。false
の場合、WebLogic Server は有効期限が指定されている SOAP リクエストをすべて拒否します。
この要素の有効な値は、True
および False
です。デフォルト値は false
です。
この要素は、属性を持ちません。この要素は、<timestamp>
の子要素です。
components
Web サービスを実装するバックエンド コンポーネントを定義します。
WebLogic Web サービスは、以下の 1 つまたは複数のコンポーネントを使用して実装できます。
ステートレス セッション EJB
JMS 送り先
Java クラス
この要素には属性はありません。
ejb-link
EJB JAR ファイル内のどの EJB を使用してステートレス セッション EJB バックエンド コンポーネントを実装するかを指定します。
表 A-1 <ejb-link> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
path
|
次の形式の EJB の名前。
jar-name #ejb-name
jar-name は、ステートレス セッション EJB を含んでいる JAR ファイル (Web サービス EAR ファイル内に含まれている) の名前を指す。名前には、最上位の EAR ファイルへの相対パス名が含まれている必要がある。
ejb-name は、EJB JAR ファイル内の ejb-jar.xml デプロイメント記述子内の <ejb-name> 要素に対応するステートレス セッション EJB の名前を指す。
例 : myapp.jar#StockQuoteBean
|
String
|
必須
|
encryptionKey
SOAP メッセージの要素を暗号化する際に使用するキー ペアと証明書の名前およびパスワードを指定します。名前は <name>
下位要素で、パスワードは <password>
下位要素で指定します。
注意 : Administration Console でキーと証明書のペアを WebLogic Server キーストアに作成してください。詳細については、「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。
この要素は、属性を持ちません。
enforce-precision
クロック精度期間を適用するかどうかを指定します。
この要素を false
に設定した場合、WebLogic Server は、<clock-precision>
要素で指定したクロック精度期間より有効期限が短い SOAP リクエストを拒否しません。デフォルトでは、WebLogic Server はこれらの SOAP 応答を拒否します。これは、クライアント アプリケーションと WebLogic Server 間のクロック精度の不一致のため、WebLogic Server はメッセージが期限切れになったかどうかを判断できないからです。
この要素の有効な値は、True
および False
です。デフォルト値は true
です。
この要素は、属性を持ちません。この要素は、<timestamp>
の子要素です。
fault
このオペレーションの呼び出しでエラーが発生した場合に送出される SOAP 障害を指定します。
この要素は必須ではありません。
表 A-2 <fault> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
class-name
|
SOAP ハンドラを実装する完全修飾 Java クラス。
|
String
|
必須
|
name
|
パラメータの名前。
|
String
|
必須
|
generate-signature-timestamp
WebLogic Server が WebLogic Web サービス オペレーションを呼び出したクライアント アプリケーションへの SOAP 応答にタイムスタンプを追加するかどうかを指定します。
この要素の有効な値は、True
および False
です。デフォルト値は true
です。
この要素は、属性を持ちません。この要素は、<timestamp>
の子要素です。
handler
ハンドラ チェーン内の SOAP メッセージ ハンドラを指定します。1 つのハンドラ チェーンは 1 つまたは複数のハンドラで構成できます。
ハンドラを実装する Java クラスに初期化パラメータが必要な場合は、<handler>
要素の <init-params>
子要素を任意に使用してパラメータを指定します。
表 A-3 <handler> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
class-name
|
SOAP メッセージ ハンドラを実装する完全修飾 Java クラス。
|
String
|
必須
|
handler-chain
特定のハンドラ チェーンを構成する SOAP メッセージ ハンドラをリストします。1 つの WebLogic Web サービスでは、任意数のハンドラ チェーンを定義できます (0 でもかまわない)。
ハンドラ (<handler>
子要素により定義される) がリストされる順番は重要です。デフォルトでは、ハンドラの handleRequest()
メソッドは、<handler-chain>
要素の子要素としてリストされている順に実行されます。ハンドラの handleResponse()
メソッドは、リストされているものとは逆の順序で実行されます。
表 A-4 <handler-chain> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
name
|
このハンドラ チェーンの名前。
|
String
|
必須
|
handler-chains
この web-services.xml
ファイルで記述された Web サービスに使用されている SOAP メッセージ ハンドラ チェーンを記述する <handler-chain>
要素のリストを含んでいます。1 つの WebLogic Web サービスでは、任意数のハンドラ チェーンを定義できます (0 でもかまわない)。
この要素は、属性を持ちません。
inbound-expiry
Web サービスを呼び出すクライアント アプリケーションからの SOAP リクエストに対する WebLogic Server 側の有効期限をミリ秒単位で指定します。WebLogic Server は、この要素の値を SOAP リクエストのタイム スタンプの作成日に加算し、クロック精度を計算して、結果を現在の時刻と比較します。結果が現在時刻より大きい場合、WebLogic Server は呼び出しを拒否します。
SOAP リクエストの独自の有効期限に加え、WebLogic Server はクライアント アプリケーション側で指定された SOAP リクエスト メッセージ自体の有効期限も考慮します。
有効期限を指定しない場合は、この要素を -1
に設定します。
この要素のデフォルト値は -1
です。
この要素を設定する場合、<clocks-synchronized>
要素を true
に設定して、WebLogic Server とクライアント アプリケーションのクロックが同期されていることを指定する必要があります。
init-param
ハンドラの初期化パラメータのうちの 1 つを表す名前と値の組み合わせを指定します。
表 A-5 <init-param> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
name
|
パラメータの名前。
|
String
|
必須
|
value
|
パラメータの値。
|
String
|
必須
|
init-params
ハンドラを実装する Java クラスに受け渡される初期化パラメータのリストを含んでいます。
この要素は、属性を持ちません。
java-class
Web サービスの 1 つまたは複数のオペレーションを実装する Java クラス コンポーネントを記述します。
表 A-6 <java-class> 要素の属性
属性
|
説明
|
データ型
|
必須/省略可能
|
class-name
|
このコンポーネントを実装する Java クラスの完全修飾名。
|
String
|
必須
|
name
|
このコンポーネントの名前。
|
String
|
必須
|
jms-receive-queue
Web サービス内のオペレーションのうちの 1 つが JMS キューにマップされることを指定します。この要素は、JMS キューからデータを受信する Web サービス オペレーションの指定に使用されます。
通常は、メッセージ プロデューサがメッセージを特定の JMS キューに入れ、この Web サービス オペレーションを呼び出すクライアントがポーリングを行ってメッセージを受信します。
表 A-7 <jms-receive-queue> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
connection-factory
|
WebLogic Server が JMS 接続オブジェクトの作成に使用する JMS 接続ファクトリの JNDI 名。
|
String
|
必須
|
initial-context-factory
|
WebLogic Server 以外の JMS 実装のためのコンテキスト ファクトリ。
|
String
|
任意
|
name
|
このコンポーネントの名前。
|
String
|
必須
|
provider-url
|
WebLogic Server 以外の JMS 実装への接続に使用される URL。
|
String
|
任意
|
jms-send-destination
Web サービス内のオペレーションのうちの 1 つが JMS キューにマップされることを指定します。この要素は、JMS キューにデータを送信する Web サービス オペレーションの指定に使用されます。
通常は、メッセージが JMS 送り先に送信された後に、メッセージ コンシューマ (メッセージ駆動型 Bean など) がそのメッセージを使用します。
表 A-8 <jms-send-destination> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
connection-factory
|
WebLogic Server が JMS 接続オブジェクトの作成に使用する JMS 接続ファクトリの JNDI 名。
|
String
|
必須
|
initial-context-factory
|
WebLogic Server 以外の JMS 実装のためのコンテキスト ファクトリ。
|
String
|
任意
|
name
|
このコンポーネントの名前。
|
String
|
必須
|
provider-url
|
WebLogic Server 以外の JMS 実装への接続に使用される URL。
|
String
|
任意
|
jndi-name
JNDI ツリーにバインドされているオブジェクトへの参照を指定します。参照の対象は、ステートレス セッション EJB または JMS 送り先になります。
表 A-9 <jndi-name> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
path
|
JNDI コンテキスト ルートからオブジェクトへのパス名。
|
String
|
必須
|
name
<name>
要素は、親要素に応じて以下の名前を指定します。
SOAP 応答メッセージ内のユーザ名トークンで使用されるユーザ名 (親要素が <user>
の場合)
WebLogic Server のキーストアに格納されている、SOAP メッセージの一部分を暗号化するのに使用されるキー ペアと証明書の名前 (親要素が <encryptionKey>
の場合)
WebLogic Server のキーストアに格納されている、SOAP メッセージの一部にデジタル署名を行うために使用されるキー ペアと証明書の名前 (親要素が <signatureKey>
の場合)
この要素は、属性を持ちません。
operation
Web サービスの 1 つのオペレーションをコンフィグレーションします。この要素の属性の値と組み合わせによって、次の種類のオペレーションをコンフィグレーションできます。
ステートレス セッション EJB または Java クラスのメソッドの呼び出し。この種類のオペレーションを指定するには、component
属性をステートレス セッション EJB または Java クラス コンポーネントの名前に設定し、method
属性をメソッドの名前に設定します。
JMS バックエンド コンポーネントの呼び出し。この種類のオペレーションを指定するには、component
属性を JMS コンポーネントの名前に設定します。
ハンドラ チェーン上の SOAP メッセージ ハンドラの連続呼び出しとバックエンド コンポーネントの呼び出し。この種類のオペレーションを指定するには、component
属性をコンポーネントの名前に設定し、handler-chain
属性を対象のハンドラ チェーンの名前に設定します。
ハンドラ チェーン上の SOAP メッセージ ハンドラの連続呼び出し (ただし、バックエンド コンポーネントは呼び出さない)。この種類のオペレーションを指定する場合は、component
属性と method
属性を設定せずに、handler-chain
属性を対象のハンドラ チェーンの名前に設定します。
オペレーションのパラメータと戻り値を明示的に指定するには、<params>
子要素を使用します。
表 A-10 <operation> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
component
|
このオペレーションを実装するコンポーネントの名前。
この属性の値は、該当する <component> 要素の name 属性に対応する。
|
String
|
省略可能
|
handler-chain
|
このオペレーションを実装する SOAP メッセージ ハンドラ チェーンの名前。
この属性を component および method 属性と一緒に指定すると、オペレーションはメソッドとハンドラ チェーンの両方で実装される。ただし、component および method 属性を指定せずに、handler-chain だけを指定した場合、オペレーションは SOAP メッセージ ハンドラ チェーンのみで実装される。
この属性の値は、該当する <handler-chain> 要素の name 属性に対応する。
|
String
|
任意
|
in-security-spec
|
クライアント アプリケーションがオペレーションを呼び出すときの SOAP リクエストのメッセージレベルのセキュリティを記述するセキュリティ仕様の名前を指定する。セキュリティ仕様には、SOAP リクエストのどの部分に対して暗号化またはデジタル署名を行うのかを記述する。
この属性を指定しない場合、SOAP リクエストにはデフォルト セキュリティ仕様が適用される (存在する場合)。デフォルト セキュリティ仕様が存在しない場合、SOAP リクエストにはメッセージレベルのセキュリティはまったく適用されない。
この属性の値は、該当する <spec:SecuritySpec> 要素の Id 属性に対応する。
|
String
|
任意
|
invocation-style
|
オペレーションが SOAP リクエストの受信と SOAP 応答の送信の両方を行うか、SOAP 応答の返信は行わずに SOAP リクエストの受信のみを行うかを指定する。
この属性には、request-response (デフォルト値) または one-way のいずれかの値のみを指定できる。
注意 : このオペレーションを実装するバックエンド コンポーネントが、ステートレス セッション EJB または Java クラスのメソッドである場合にこの属性を one-way に設定すると、メソッドにより void が返される。
|
String
|
任意
|
method
|
オペレーションを実装する EJB または Java クラスのメソッドの名前 (component 属性でオペレーションがステートレス セッション EJB または Java クラスで実装されることを指定した場合)。
アスタリスク (*) を使用すると、全メソッドを指定できる。
EJB または Java クラスがメソッドをオーバーロードしない場合は、次のように、メソッド名しか指定する必要がない。
method="sell"
ただし、EJB または Java クラスがメソッドをオーバーロードする場合は、次のように、全シグネチャを指定する。
method="sell(int)"
|
String
|
任意
|
name
|
生成された WSDL で使用されるオペレーションの名前。
この属性が未指定の場合、オペレーションの名前はメソッド名または SOAP メッセージ ハンドラ チェーン名にデフォルトで設定される。
|
String
|
任意
|
out-security-spec
|
クライアント アプリケーションがオペレーションを呼び出した後の WebLogic Server の SOAP 応答のメッセージレベルのセキュリティを記述するセキュリティ仕様の名前を指定する。セキュリティ仕様には、SOAP 応答のどの部分に対して暗号化またはデジタル署名を行うのかを記述する。
この属性を指定しない場合、SOAP 応答にはデフォルト セキュリティ仕様が適用される (存在する場合)。デフォルト セキュリティ仕様が存在しない場合、SOAP 応答にはメッセージレベルのセキュリティはまったく適用されない。
この属性の値は、該当する <spec:SecuritySpec> 要素の Id 属性に対応する。
|
String
|
任意
|
portTypeName
|
このオペレーションが属する WSDL ファイルのポートの種類。ポートの種類から成るカンマ区切りリストを指定することにより、このオペレーションを複数のポートの種類に含めることができる。この Web サービスの WSDL の生成時に、独立した <portType> 要素が指定したポートの種類ごとに作成される。
デフォルト値は、<web-service> 要素の portType 属性の値。
|
String
|
任意
|
operations
<operations>
要素は、この Web サービスの明示的に宣言されたオペレーションをグループ化します。
この要素は、属性を持ちません。
outbound-expiry
WebLogic Server が SOAP 応答のタイムスタンプ ヘッダに追加する有効期限をミリ秒単位で指定します。
有効期限を指定しない場合は、この要素を -1
に設定します。
この要素のデフォルト値は -1
です。
param
<param>
要素はオペレーションの単一パラメータを指定します。
パラメータは、オペレーションを実装するメソッドを定義した順序と同じ順序で指定する必要があります。<param>
要素の数は、メソッドのパラメータ数と一致する必要があります。
表 A-11 <param> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
class-name
|
パラメータのデータ型の Java 表現の Java クラス名。
この属性が未指定の場合、WebLogic Server は、パラメータの Java クラスのオペレーションを実装するバックエンド コンポーネントを参照する。
この属性の指定が必要となるのは、パラメータの XML 表現と Java 表現間のマッピングをデフォルトとは異なるものにする場合のみである。たとえば、xsd:int はデフォルトでは Java プリミティブ int 型にマップされるため、これを java.lang.Integer にマップするにはこの属性を使用する。
|
NMTOKEN
|
通常は必須。 属性の説明を参照。
|
location
|
in パラメータの値を含むリクエスト SOAP メッセージの部分 (ヘッダ、本文、または添付ファイル)。
この属性の有効な値は、Body、Header、または attachment 。デフォルト値は Body。
Body を指定すると、RPC オペレーションの呼び出しに関する通常の SOAP 規則に基づき、パラメータの値が SOAP 本文から抽出される。Header を指定すると、type 属性の値を名前に持つ SOAP ヘッダ要素から値が抽出される。
attachment を指定すると、SOAP エンベロープではなく SOAP 添付ファイルからパラメータの値が抽出される。JAX-RPC 仕様で指定されているように、SOAP 添付ファイルから抽出できるのは、以下の Java データ型のみ。
|
String
|
任意
|
name
|
生成された WSDL で使用される in パラメータの名前。
デフォルト値は、メソッドのシグネチャにあるパラメータの名前。
|
String
|
任意
|
style
|
in パラメータ (標準入力パラメータ、戻り値として使用される out パラメータ、または値の入出力の両方に使用される inout パラメータ) のスタイル。
この属性の有効な値は、in 、out 、または inout 。
パラメータを out または inout に指定すると、バックエンド コンポーネントのメソッド内のパラメータの Java クラスが javax.xml.rpc.holders.Holder インタフェースを実装する。
|
String
|
必須
|
type
|
パラメータの XML スキーマデータ型。
|
NMTOKEN
|
必須
|
params
<params>
要素は、オペレーションの明示的に宣言されたパラメータとオペレーションの戻り値をグループ化します。
オペレーションのパラメータや戻り値は明示的にリストする必要はありません。<operation>
要素に <params>
子要素がない場合、WebLogic Server はオペレーションを実装するバックエンド コンポーネントを参照してパラメータと戻り値を決定します。Web サービスの WSDL の生成時に、WebLogic Server は対応するメソッドのパラメータと戻り値の名前を使用します。
オペレーションのパラメータと戻り値は、以下の場合に明示的にリストしてください。
生成された WSDL のパラメータおよび戻り値の名前は、そのオペレーションを実装するメソッドの名前とは異なる名前とする必要がある場合。
パラメータを SOAP のリクエスト ヘッダまたは応答ヘッダにある名前にマップする必要がある場合。
out または inout パラメータを使用する必要がある場合。
オペレーションのパラメータを指定するには、<param>
子要素を使用します。
オペレーションの戻り値を指定するには、<return-param>
子要素を使用します。
<params>
要素は、属性を持ちません。
password
<password>
要素は、親要素に応じて以下のパスワードを指定します。
SOAP 応答メッセージ内のユーザ名トークンで使用されるパスワード (親要素が <user>
の場合)
WebLogic Server のキーストアに格納されている、SOAP メッセージの一部分を暗号化するのに使用されるキー ペアと証明書のパスワード (親要素が <encryptionKey>
の場合)
WebLogic Server のキーストアに格納されている、SOAP メッセージの一部にデジタル署名を行うために使用されるキー ペアと証明書のパスワード (親要素が <signatureKey>
の場合)
この要素は、属性を持ちません。
reliable-delivery
<reliable-delivery>
要素は、信頼性のある SOAP メッセージングを使用してオペレーションを非同期に呼び出すことができることを指定します。これにより、Web サービスを呼び出すアプリケーションでは、SOAP メッセージが Web サービス オペレーションに配信されたことが保証されます。配信されなかった場合には、その旨を明示的に示す例外を受信します。
<reliable-delivery>
要素は、1 つのオペレーションに対して 1 つだけ指定できます。
表 A-12 <reliable-delivery> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
duplicate-elimination
|
WebLogic Web サービスが同じクライアント アプリケーションからの重複呼び出しを無視するかどうかを指定する。
この属性を True に設定すると、Web サービスは重複呼び出しを排除できるようにクライアント アプリケーションからのメッセージ ID を保持する。False に設定した場合、Web サービスは重複呼び出しを管理しない。つまり、クライアントが呼び出しを再試行した場合、どちらの呼び出しも値を返すことができる。
この属性の有効な値は、True および False 。デフォルト値は True 。
|
Boolean
|
任意
|
persist-duration
|
Web サービスを呼び出した送信元から受信した信頼性のある SOAP メッセージの履歴を、Web サービスがそのストレージに保持するデフォルトの最小秒数。
Web サービスは、WebLogic Server のクラッシュからの回復後、保持しているメッセージのうち期限の切れているものはディスパッチしない。
この属性の値 (設定する場合) は、送信側の再試行間隔と再試行回数の積よりも大きい値を指定する。
この属性のデフォルト値は 60,000。
|
Integer
|
任意
|
require-signature-timestamp
WebLogic Server が、その呼び出し元のクライアント アプリケーションからの SOAP リクエストにタイムスタンプが組み込まれていることを要求するかどうかを指定します。このプロパティを true
に設定し、SOAP リクエストにタイムスタンプが含まれていない場合、WebLogic Server は応答を拒否します。
この要素の有効な値は、True
および False
です。デフォルト値は true
です。
この要素は、属性を持ちません。この要素は、<timestamp>
の子要素です。
return-param
<return-param>
要素は、Web サービス オペレーションの戻り値を指定します。
1 つのオペレーションに指定できる <return-param>
要素は 1 つのみです。
表 A-13 <return-param> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
class-name
|
戻りパラメータのデータ型の Java 表現の Java クラス名。
この属性が未指定の場合、WebLogic Server は、戻りパラメータの Java クラスのオペレーションを実装するバックエンド コンポーネントを参照する。
この属性は、次の場合に指定が必要になる。
|
NMTOKEN
|
通常は必須。属性の説明を参照。
|
location
|
戻りパラメータの値を含む応答 SOAP メッセージの部分 (ヘッダ、本文、または添付ファイル)。
この属性の有効な値は、Body、Header、または attachment 。デフォルト値は Body。
Body を指定すると、戻りパラメータの値が SOAP 本文に追加される。Header を指定すると、type 属性の値を名前に持つ SOAP ヘッダ要素として値が追加される。
attachment を指定すると、SOAP エンベロープではなく SOAP 添付ファイルにパラメータの値が追加される。JAX-RPC 仕様で規定されているように、SOAP 添付ファイルに追加できるのは以下の Java データ型のみ。
|
String
|
任意
|
name
|
生成された WSDL ファイルで使用される戻りパラメータの名前。
この属性が未指定の場合、戻りパラメータの名前は result になる。
|
String
|
任意
|
type
|
戻りパラメータの XML スキーマ データ型。
|
NMTOKEN
|
必須
|
security
特定の Web サービスに関するすべてのセキュリティ コンフィグレーション情報を含む要素です。以下の情報が対象です。
SOAP 応答ユーザ名トークンで使用されるユーザ名とパスワード (<user>
子要素)。
WebLogic Server キーストアに格納されている、データ暗号化とデジタル署名に使用するキー ペアの名前 (<encryptionKey>
および <signatureKey>
子要素)。
SOAP メッセージのどの部分を暗号化およびデジタル署名するか (<spec:SecuritySpec>
子要素)。
表 A-14 <security> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
Name
|
この security 要素の名前。
|
String
|
必須
|
signatureKey
SOAP メッセージの要素にデジタル署名するのに使用するキー ペアと証明書の名前およびパスワードを指定します。名前は <name>
下位要素で、パスワードは <password>
下位要素で指定します。
注意 : Administration Console でキー ペアと証明書を WebLogic Server キーストアに作成してください。詳細については、「プライベート キー、デジタル証明書、信頼性のある認証局の格納」を参照してください。
この要素は、属性を持ちません。
spec:BinarySecurityTokenSpec
SOAP メッセージに組み込む (バイナリの) 非 XML ベースのセキュリティ トークンを指定します。
注意 : この要素と合わせて次のネームスペース宣言を組み込む必要があります。
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"
また、この要素の各属性の値は wsse
ネームスペースで修飾する必要があります。
表 A-15 <spec:BinarySecurityTokenSpec> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
EncodingType
|
バイナリ データのエンコード形式を指定する。
有効な値は wsse:Base64Binary のみ。
|
String
|
必須
|
ValueType
|
エンコードされたバイナリ データの値の型とスペースを指定する。
有効な値は wsse:X509v3 のみ (X.509 証明書の場合)。
|
String
|
必須
|
spec:ElementIdentifier
SOAP メッセージ (ヘッダまたは本文) の中のデジタル署名または暗号化する要素を特定します。SOAP メッセージ中の要素をローカル名とネームスペースでユニークに指定します。
この要素は、<spec:SignatureSpec>
または <spec:EncryptionSpec>
の子要素として指定します。
表 A-16 <spec:ElementIdentifier> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
LocalPart
|
要素のローカル名。この属性ではネームスペースを指定しないこと。
|
String
|
必須
|
Namespace
|
要素が定義されているネームスペース。
|
String
|
必須
|
Restriction
|
要素の識別対象を SOAP ヘッダまたは本文に限定するかどうかを指定する。
有効な値は header または body 。この値を指定しないと、要素の識別時に SOAP メッセージ全体が検索対象になる。
注意 : このオプション属性に値を指定すると、該当する SAP メッセージ部分 (ヘッダまたは本文) の最上位要素のみが検索対象になる。この属性を指定しないと、ネストの深さに関係なく、すべての要素が検索される。
|
String
|
任意
|
spec:EncryptionSpec
SOAP メッセージ中の暗号化する要素と暗号化する方法を指定します。
属性 EncryptBody="True"
を設定すると、SOAP 本文全体を暗号化の対象に指定できます。また、<spec:ElementIdentifier>
子要素を使用して、SOAP メッセージ中の暗号化する特定の要素を指定することもできます。
警告 : EncryptBody="True"
の指定と <spec:ElementIdentifier>
子要素による要素の指定を同時には行わないでください。暗号化する SOAP メッセージの要素を指定する方法には、どちらか一方のみを採用してください。
SOAP メッセージの要素を暗号化する方法の指定には、EncryptionMethod
属性を使用します。
表 A-17 <spec:EncryptionSpec> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
EncryptBody
|
SOAP 本文全体を暗号化するかどうかを指定する。
注意 : EncryptBody="True" の指定と <spec:ElementIdentifier> 子要素による要素の指定を同時には行わないこと。暗号化する SOAP メッセージの要素を指定する方法には、どちらか一方のみを採用すること。
有効な値は True および False 。
|
String
|
必須
|
EncryptionMethod
|
SOAP メッセージの特定の要素を暗号化するのに使用するアルゴリズムを指定する。
有効な値は、次のとおり。
http://www.w3.org/2001/04/xmlenc#tripledes-cbc http://www.w3.org/2001/04/xmlenc#kw-tripledes
デフォルト値は http://www.w3.org/2001/04/xmlenc#tripledes-cbc 。
|
String
|
任意
|
KeyWrappingMethod
|
メッセージの暗号化キーを暗号化するために使用するアルゴリズムを指定する。
有効な値は、次のとおり。
http://www.w3.org/2001/04/xmlenc#rsa-1_5 (REQUIRED RSA-v1.5 アルゴリズムを指定)
http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p (REQUIRED RSA-OAEP アルゴリズムを指定)
この属性を使用する場合は、値を次のような URI に設定する。
KeyWrappingMethod="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"
デフォルト値は http://www.w3.org/2001/04/xmlenc#rsa-1_5 。
|
String
|
任意
|
spec:SecuritySpec
この Web サービスに関する一連のセキュリティ関連情報を指定します。
この要素の情報には以下のものがあります。
Web サービスの呼び出し元クライアントのユーザ名とパスワードを指定するセキュリティ トークン (<spec:UsernameTokenSpec>
子要素)
X.509 証明書など、非 XML ベースのセキュリティ トークンを指定するバイナリ セキュリティ トークン (<spec:BinarySecurityTokenSpec>
子要素)
SOAP メッセージのデジタル署名する部分の指定 (<spec:SignatureSpec>
子要素)
SOAP メッセージの暗号化する部分の指定 (<spec:EncryptionSpec>
子要素)
<spec:SecuritySpec>
要素の情報は Web サービスの生成された WSDL に組み込まれます。これにより、Web サービスを呼び出すクライアントでは、すべてのセキュリティ仕様に沿った SOAP リクエストの作成方法がわかります。
また WebLogic Server も、特定の Web サービスを呼び出す SOAP リクエストのヘッダに必要なセキュリティ情報がすべて格納されているかどうかを検証するために、この要素の情報を利用します。たとえば、<spec:SecuritySpec>
要素で SOAP メッセージのある部分にデジタル署名するよう指定されていれば、WebLogic Server はこれについて SOAP リクエストの受信時にチェックする必要があるとわかります。チェック後、WebLogic Server は同じ情報を使って SOAP 応答メッセージのセキュリティ情報を作成します。
単一の Web サービスに対して複数のセキュリティ仕様を作成し、オペレーションごとに異なるセキュリティ仕様を使用できます。たとえば、あるオペレーションでは SOAP メッセージ (リクエストと応答の両方) にデジタル署名だけを行い、別のオペレーションでは SOAP リクエストだけにデジタル署名と暗号化を行うようにコンフィグレーションできます。そのためには、オペレーションを異なるセキュリティ仕様に関連付けます。
注意 : この要素と合わせて次のネームスペース宣言を組み込む必要があります。
xmlns:spec="http://www.openuri.org/2002/11/wsse/spec"
また、<spec:SecuritySpec>
要素の子要素はすべて spec
ネームスペースで修飾する必要があります。
表 A-18 <spec:SecuritySpec> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
Id
|
このセキュリティ仕様を識別するための名前。 この id をオペレーションに関連付ける。
この属性を指定しない場合、このセキュリティ仕様は Web サービスのデフォルトとなる。このため、セキュリティ仕様に明示的に関連付けられていないオペレーションはデフォルトによってこのセキュリティ仕様を使用する。
|
String
|
任意
|
Namespace
|
このセキュリティ仕様が定義されているネームスペース。
|
String
|
必須
|
spec:SignatureSpec
SOAP メッセージ中のデジタル署名する要素と署名方法を指定します。
デジタル署名は、転送中にメッセージが改ざんされなかったかどうかを判断したり、メッセージが本当に特定のセキュリティ トークンのプロセッサから送信されものかどうかを検証する方法の 1 つです。
属性 SignBody="True"
を設定すると、SOAP 本文全体にデジタル署名するように指定できます。デジタル署名する対象として SOAP メッセージの特定の要素を追加指定するには、<spec:ElementIdentifier>
子要素を使用します。
SOAP メッセージの要素にデジタル署名する方法の指定には、CanonicalizationMethod
属性および SignatureMethod
属性を使用します。
表 A-19 <spec:SignatureSpec> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
CanonicalizationMethod
|
デジタル署名する SOAP メッセージの要素を標準化するのに使用するアルゴリズムを指定する。
有効な値は次の値のみ。
http://www.w3.org/2001/10/xml-exc-cl4n#
|
String
|
必須
|
SignatureMethod
|
署名の計算に使用する暗号アルゴリズムを指定する。
注意 : 必ず社内で使用している証明書と互換性のあるアルゴリズムを指定すること。
有効な値は、次のとおり。
http://www.w3.org/2000/09/xmldsig#rsa-sha1 http://www.w3.org/2000/09/xmldsig#dsa-sha1
|
String
|
必須
|
SignBody
|
省略可能な <spec:ElementIdentifier> 子要素で指定した特定の要素に加え、SOAP 本文全体にもデジタル署名するかどうかを指定する。
有効な値は True および False 。
|
String
|
必須
|
spec:UsernameTokenSpec
この Web サービスの呼び出し後の SOAP 応答に必ずユーザ名トークンを含めるよう指定します。
WebLogic Server では、SOAP 応答メッセージのセキュリティ情報を作成するとき、<security>
要素の <user>
子要素の情報を使用します。
注意 : この要素と合わせて次のネームスペース宣言を組み込む必要があります。
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"
また、この要素の各属性の値は wsse
ネームスペースで修飾する必要があります。
表 A-20 <spec:UsernameTokenSpec> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
PasswordType
|
SOAP メッセージにパスワードを格納する方法を指定する。
有効な値は wsse:PasswordText (ユーザ名に対応する実際のパスワード) のみ。
|
String
|
必須
|
stateless-ejb
Web サービスの 1 つまたは複数のオペレーションを実装するステートレス セッション EJB コンポーネントを指定します。
表 A-21 <stateless-ejb> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
name
|
ステートレス EJB コンポーネントの名前。
注意 : 名前は web-services.xml ファイル内のもので、ejb-jar.xml ファイル内の EJB の名前は参照しない。
|
String
|
必須
|
timestamp
<timestamp>
要素は、WebLogic Server のタイムスタンプ動作をコンフィグレーションするために使用する要素をグループ化したものです。WebLogic Server は、暗号化またはデジタル署名される SOAP メッセージに対してだけタイムスタンプを追加または要求します。
web-services.xml
デプロイメント記述子の <security>
要素に <timestamp>
子要素が存在せず、Web サービスでメッセージ セキュリティ (暗号化とデジタル署名) がコンフィグレーションされている場合、WebLogic Server は次のように動作します。
SOAP リクエストにタイムスタンプを組み込むことを要求し、それ以外の SOAP リクエストをすべて拒否する。
WebLogic Server のクロックとクライアント アプリケーションのクロックが同期していないと見なす。このため、クライアント アプリケーションからの SOAP リクエストに有効期限付きのタイムスタンプが組み込まれている場合、WebLogic Server はそのメッセージを拒否します。これは、メッセージが期限切れになっているかどうかを判断できないからです。
SOAP 応答にタイムスタンプを追加する。タイムスタンプには、SOAP 応答の作成日だけが含まれます。
この要素には属性はありません。この要素には次の子要素があります。
type-mapping
<type-mapping>
要素には、<types>
要素に定義されている XML データ型とその Java 表現間のマッピングのリストが含まれています。
<types>
要素内の各データ型に対し、そのデータ型を実装する Java クラスや、データをシリアライズ/デシリアライズする方法などをリストした <type-mapping-entry>
要素があります。
この要素には属性はありません。
type-mapping-entry
<types>
要素内の単一 XML データ型とその Java 表現間のマッピングを指定します。
表 A-22 <type-mapping-entry> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
class-name
|
対応する XML データ型にマップされる Java クラスの完全修飾名。
|
String
|
必須
|
deserializer
|
データを XML から Java に変換する Java クラスの完全修飾名。
|
String
|
データ型が、「サポートされる組み込みデータ型」にリストされている WebLogic Web サービス実行時でサポートされている組み込みデータ日付ではない場合にのみ必須。
|
element
|
Java データ型にマップされる XML データ型の名前。データ型の XML スキーマ定義で <element> 要素を使用する場合にのみ指定する。
|
NMTOKEN
|
element または type のいずれか 1 つ (両方ではない) が必須。
|
serializer
|
データを Java から XML に変換する Java クラスの完全修飾名。
|
String
|
データ型が、「サポートされる組み込みデータ型」にリストされている WebLogic Web サービス実行時でサポートされている組み込みデータ日付ではない場合にのみ必須。
|
type
|
Java データ型にマップされる XML データ型の名前。データ型の XML スキーマ定義で <type> 要素を使用する場合にのみ指定する。
|
NMTOKEN
|
element または type のいずれか 1 つ (両方ではない) が必須。
|
types
XML スキーマ表記法に基づいて、Web サービス オペレーションのパラメータまたは戻り値の型として使用される非組み込みデータ型を記述します。
XML スキーマを使用して非組み込みデータ型の XML 表現を記述する方法の詳細については、「http://www.w3.org/TR/xmlschema-0/」を参照してください。
次の例では、stockSymbol
(String データ型) と numberTraded
(Integer 型) の 2 つの要素を含む TradeResult
というデータ型の XML スキーマ宣言を示します。
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:stns="java:examples.webservices"
attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="java:examples.webservices">
<xsd:complexType name="TradeResult">
<xsd:sequence>
<xsd:element maxOccurs="1"
name="stockSymbol"
type="xsd:string" minOccurs="1">
</xsd:element>
<xsd:element maxOccurs="1"
name="numberTraded"
type="xsd:int"
minOccurs="1">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
user
SOAP 応答メッセージで使用されるユーザ名とパスワードを指定します。
この要素には次の 2 つの子要素があります。
この要素には属性はありません。
web-service
単一の Web サービスを定義します。
Web サービスは以下によって定義されます。
オペレーションを実装するバックエンド コンポーネント (ステートレス セッション EJB、Java クラス、JMS コンシューマ、JMS プロデューサなど)。
Web サービス オペレーションのパラメータまたは戻り値として使用される非組み込みデータ型のデータ型宣言の省略可能なセット。
非組み込みデータ型のシリアライゼーション クラスと Java クラスを指定する XML/Java データ型マッピングの省略可能なセット。
Web サービスでサポートされるオペレーションの宣言。
表 A-23 <web-service> 要素の属性
属性
|
説明
|
データ型
|
必須/任意
|
charset
|
Web サービスが呼び出しへの応答で使用する文字セットを指定する。文字セットの例としては、US-ASCII 、UTF-8 、Shift_JIS などがある。
デフォルト値は US-ASCII 。
注意 : この属性のデフォルト値は US-ASCII であるが、これは Web サービスの web-service.xml ファイルでこの属性を明示的に指定しない場合、WebLogic Web サービス呼び出しへの応答で常に US-ASCII の文字セットが使用されるという意味ではない。詳細については、「WebLogic Server が使用する文字セット コンフィグレーションの優先順位」を参照。
|
String
|
任意
|
exposeHomePage
|
この Web サービスのホーム ページを外部にエクスポーズするかどうかを指定する。
この属性の有効な値は、True および False 。デフォルト値は True 。すなわち、デフォルトではホーム ページは外部からアクセス可能。
|
Boolean
|
任意
|
exposeWSDL
|
この Web サービスの自動生成による WSDL を外部にエクスポーズするかどうかを指定する。
この属性の有効な値は、True および False 。デフォルト値は True 。すなわち、デフォルトでは WSDL は外部からアクセス可能。
|
Boolean
|
任意
|
ignoreAuthHeader
|
Web サービスが SOAP リクエスト内の Authorization HTTP ヘッダを無視することを指定する。
注意 : この属性の使用は慎重に行ってください。 この属性の値を True に設定すると、WebLogic Server は、たとえアクセス制御のセキュリティ制約が Web サービスを構成する EJB、Web アプリケーション、またはエンタープライズ アプリケーションに対して定義されていても、Web サービスを呼び出そうとしているクライアント アプリケーションの認証を行わない。つまり、認証資格を提供しないクライアント アプリケーションでも、セキュリティ制約が定義されていれば、Web サービスを呼び出すことが可能となる。
有効な値は True および False 。デフォルト値は False 。
|
Boolean
|
省略可能
|
jmsUri
|
クライアント アプリケーションが Web サービスの呼び出しに、デフォルトの HTTP/S 転送だけでなく JMS 転送も使用できるよう指定する。この属性の書式は次のとおりである。
connection_factory_name /queue_name
ここで、connection_factory_name は JMS 接続ファクトリの JNDI 名、queue_name は JMS 転送用にコンフィギュレーションした JMS キューの JNDI 名。次に例を示す。
jmsURI="JMSTransFactory/JMSTransQueue"
この属性を設定すると、Web サービスの生成された WSDL に JMS バインディングを使用する追加ポートが含まれる。clientgen Ant タスクは、この Web サービスの呼び出しに使用されるスタブの生成時に、デフォルトの get ServicePort() メソッド (HTTP/S 用) に加え get Service PortJMS() メソッド (JMS 用) を生成する。
|
String
|
省略可能
|
name
|
Web サービスの名前。
|
String
|
必須
|
portName
|
この Web サービスの動的に生成された WSDL の <service> 要素の <port> 子要素の名前。
デフォルト値は、この要素の name 属性に Port を付加した値。たとえば、この Web サービスの名前が TraderService の場合、ポート名は TraderServicePort になる。
|
String
|
任意
|
portTypeName
|
この Web サービスの動的に生成された WSDL で、デフォルトの <portType> 要素の名前。
デフォルト値は、この要素の name 属性に Port を付加した値。たとえば、この Web サービスの名前が TraderService の場合、portType 名は TraderServicePort になる。
|
String
|
任意
|
protocol
|
サービスの呼び出しに使用されるプロトコル。
有効な値は http または https 。デフォルトは http 。
|
String
|
任意
|
style
|
Web サービスのオペレーションが RPC 指向かドキュメント指向かを指定する。
RPC 指向の WebLogic Web サービス オペレーションでは、SOAP エンコーディングを使用する。ドキュメント指向の WebLogic Web サービス オペレーションでは、リテラル エンコーディングを使用する。
document と documentwrapped は、ドキュメント指向の Web サービス オペレーションを指定する。
document を指定した場合、Web サービスはパラメータを 1 つしか取らない。このため、このオペレーションを実装するメソッドもパラメータを 1 つしか取らない。
documentwrapped を指定した場合、Web サービス オペレーションはパラメータをいくつでも取ることができる。ただし、これらのパラメータの値は、SOAP メッセージの中に 1 つの複合データ型としてラップされる。Web サービスを実装するステートレス セッション EJB または Java クラスの複数のメソッドが同じパラメータ数とデータ型を取り、オペレーションをドキュメント指向にしたい場合、この属性値として document ではなく documentwrapped を指定する必要がある。
有効な値は、rpc 、documentwrapped 、および document 。デフォルト値は rpc 。
注意 : style 属性は Web サービス全体に適用されるので、1 つの <web-service> 要素で指定されたすべてのオペレーションが RPC 指向またはドキュメント指向のいずれかである必要がある。同じ Web サービスで 2 つのスタイルを混在させることはできない。
|
String
|
任意
|
targetNamespace
|
この Web サービスのネームスペース。
|
String
|
必須
|
uri
|
Web サービスの URI。Web サービスを呼び出す URL で後に使用される。
注意 : /TraderService のように、先頭に「/」を必ず指定すること。
|
String
|
必須
|
useSOAP12
|
メッセージ フォーマット プロトコルとして SOAP 1.2 を使用するかどうかを指定する。デフォルトでは、WebLogic Web サービスは SOAP 1.1 を使用する。
useSOAP12="True" を指定した場合、デプロイされた WebLogic Web サービスの生成された WSDL には、メッセージ フォーマット プロトコルとして SOAP 1.1 用のバンディングを指定する標準ポートと、SOAP 1.2 を使用する第 2 ポートの 2 つのポートが含まれる。メッセージ フォーマット プロトコルに SOAP 1.2 を使用したい場合、クライアント アプリケーションは Web サービスの呼び出し時に第 2 ポートを使用できる。
この属性の有効な値は、True および False 。デフォルト値は False 。
|
Boolean
|
任意
|
web-services
web-services.xml
デプロイメント記述子のルート要素です。
この要素は、属性を持ちません。