Oracle® Fusion Middleware Oracle Infrastructure Webサービス・コンセプト・ガイド 11g リリース1(11.1.1) B61390-01 |
|
前 |
この付録では、Oracle Infrastructure Webサービスで使用される非同期Webサービスおよびポリシー注釈について説明します。
WebLogic Webサービス・プログラミング・モデルでは、(http://www.jcp.org/en/jsr/detail?id=175
のJSR-175で規定されている)http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html#annotations
機能のJDK 5.0メタデータ注釈を使用しています。このプログラミング・モデルでは、注釈付きのJavaファイルを使用してWebサービスの形状や特性を作成します。
表A-1は、この付録で説明している非同期Webサービスおよびポリシー注釈をまとめたものです。
使用可能な注釈の詳細は、Oracle Fusion Middleware Oracle Web ServicesのためのJava APIリファレンス』を参照してください。事前定義済ポリシーの詳細は、Web Servicesのセキュリティおよび管理者ガイドの事前定義済ポリシーに関する項を参照してください。
表A-1 Oracle Infrastructure Webサービスの注釈
注釈 | 説明 |
---|---|
|
WS-AddressingポリシーをWebサービスにアタッチします。 |
|
Webサービスを非同期Webサービスとして宣言します。 |
|
後で処理されるようリクエストを保存するために使用するキューの詳細を指定します。 |
@AsyncWebServiceResponseQueue注釈 |
後で処理されるようレスポンスを保存するために使用するキューを定義します。 |
|
このリリースでは使用されません。 |
|
コールバックportType内の対応する操作のWSDLエンティティの名前をカスタマイズし、メソッドが同期か非同期かを設定できます。 |
|
管理ポリシーを、コールバック・サービスに接続される非同期Webサービスのコールバック・クライアントにアタッチします。 |
|
MTOMポリシーを、コールバック・サービスに接続される非同期Webサービスのコールバック・クライアントにアタッチします。 |
|
コールバック・サービスをコールするときにメッセージ・コンテキスト内で必須となるプロパティを指定できます。 |
|
コールバック・サービスをコールするときにメッセージ・コンテキスト内で必須となるプロパティを指定できます。 |
|
1つ以上のセキュリティ・ポリシーを、コールバック・サービスに接続される非同期Webサービスのコールバック・クライアントにアタッチします。 |
|
管理ポリシーをWebサービスにアタッチします。 |
|
MTOMポリシーをWebサービスにアタッチします。 |
|
JWSファイルがOracle Infrastructure Webサービスを実装することをクラス・レベルで指定します。 |
|
信頼性のあるメッセージング・ポリシーをWebサービスにアタッチします。 |
|
レスポンスWebサービス・ポート情報をカスタマイズします。 |
|
セキュリティ・ポリシーのリストをWebサービスにアタッチします。 |
|
セキュリティ・ポリシーをWebサービスにアタッチします。 |
oracle.webservices.annotations.AddressingPolicy注釈は、WS-AddressingポリシーをWebサービスにアタッチします。
例:
@AddressingPolicy( value="oracle/wsaddr_policy", enabled = "true")
次の表に、oracle.webservices.annotations.AddressingPolicy注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.async.AsyncWebService注釈は、Webサービスを非同期Webサービスとして宣言します。
デフォルトでは、Webサービスに関連付けられた操作はすべて非同期となります。特定のメソッドを同期としてマークするには、「@CallbackMethod注釈」を参照してください。メソッドを同期的にも非同期的にもコールできるようにする場合は、メソッドを2つ作成して、それぞれに応じた注釈を付ける必要があります。
例:
@PortableWebService
@AsyncWebService
public class HelloService {
public String hello(String name) {
return "Hi " + name;
}
}
oracle.webservices.annotations.async.AsyncWebServiceQueue注釈は、後で処理されるようリクエストを保存するために使用するキューを定義します。詳細は、「リクエスト・キューおよびレスポンス・キューの構成」を参照してください。
例:
@AsyncWebServiceQueue (
connectionFactory = "weblogic.jms.XAConnectionFactory",
queue = "oracle.j2ee.ws.server.async.NonDefaultRequestQueue",
enableTransaction = true
)
次の表に、oracle.webservices.annotations.async.AsyncWebServiceQueue注釈に渡すことができる属性を定義します。
表A-3 oracle.webservices.annotations.async.AsyncWebServiceQueue注釈の属性
属性 | 説明 | デフォルト |
---|---|---|
connectionFactory |
リクエスト・キューのJMSキュー接続ファクトリの名前。 |
weblogic.jmx.XAConnectionFactory |
queue |
非同期リクエストを格納するために使用するJMSキューの名前。 |
oracle.j2ee.ws.server.async.DefaultRequestQueue |
enableTransaction |
MDBが非同期リクエストをトランザクションとして処理する必要があるかどうかを指定するフラグ。 注意: ユーザー・トランザクションは、独立してコミットまたはロールバックできるように、MDBトランザクションとは別に保守されます。 |
false |
oracle.webservices.annotations.async.AsyncWebServiceResponseQueue注釈は、後で処理されるようレスポンスを保存するために使用するキューを定義します。
例:
@AsyncWebServiceQueue (
connectionFactory = "weblogic.jms.XAConnectionFactory",
queue = "oracle.j2ee.ws.server.async.NonDefaultResponseQueue",
enableTransaction = true
)
次の表に、oracle.webservices.annotations.async.AsyncWebServiceResponseQueue注釈に渡すことができる属性を定義します。
表A-4 oracle.webservices.annotations.async.AsyncWebService ResponseQueue注釈の属性
属性 | 説明 | デフォルト |
---|---|---|
enabled |
レスポンス・キューが有効かどうかを指定するフラグ。有効になっている場合、リクエストMDBによってリクエストが処理され、レスポンスがレスポンス・キューに格納されます。無効になっている場合、リクエストMDBによってレスポンス処理が実行されます。 |
true |
connectionFactory |
レスポンス・キューのJMSキュー接続ファクトリの名前。 |
weblogic.jmx.XAConnectionFactory |
queue |
非同期レスポンスに使用されるJMSキューの名前。レスポンスMDBは、レスポンス・キューからメッセージを取得してコールバック・サービスに転送します。 |
oracle.j2ee.ws.server.async.DefaultResponseQueue |
enableTransaction |
MDBが非同期レスポンスをトランザクションとして処理する必要があるかどうかを指定するフラグ。 注意: ユーザー・トランザクションは、独立してコミットまたはロールバックできるように、MDBトランザクションとは別に保守されます。 |
false |
このリリースでは、レスポンス・メッセージとコールバック・サービスとを相互に関連付けるためにWS-Addressingが使用されるため、oracle.webservices.annotations.async.CallbackAddressingPolicy注釈は使用されません。将来的には、ポリシーをコールバック交換に通知するために、この注釈が使用される可能性があります。
oracle.webservices.annotations.async.CallbackMethod注釈を使用すると、コールバックportType内の対応する操作のWSDLエンティティの名前をカスタマイズし、メソッドが同期か非同期かを設定できます。この注釈は、javax.jws.WebMethod注釈と似ています。
例:
@CallbackMethod(exclude=true)
次の表に、oracle.webservices.annotations.async.CallbackMethod注釈に渡すことができる属性を定義します。
表A-5 oracle.webservices.annotations.async.CallbackMethod注釈の属性
属性 | 説明 | デフォルト |
---|---|---|
name |
コールバックportType内の注釈付きメソッドに対応するコールバック・メソッドの名前。この注釈は、POJO実装クラスからコールバック・インタフェースを生成する際に使用されるのみで、実行時には無視されます。 |
"onResult" + <注釈付きメソッドの名前> |
operationName |
コールバックportType内のこのメソッドのwsdl:operationの名前。 |
"onResult" + <注釈付きメソッドの名前> |
action |
コールバックportType内のこのメソッドのアクションの名前。SOAPバインディングでは、この値によってSOAPアクションの値が決まります。 |
操作の名前。 |
serviceRefName |
レスポンス・メッセージの送信に使用されるサービス参照用の名前。 この値は、デプロイされたアーカイブに対して一意である必要があります。次のものを定義するために使用されます。
|
<注釈付きクラスの名前> + "ResponseWebService.SERVICE_REF_NAME_SUFFIX" |
exclude |
メソッドが非同期かどうかを指定するフラグ。この値をtrueに設定すると、メソッドが同期であることを指定します。この場合、他の属性設定はすべて無視されます。 |
false |
oracle.webservices.annotations.async.CallbackManagementPolicy注釈は、管理ポリシーを、コールバック・サービスに接続される非同期Webサービスのコールバック・クライアントにアタッチします。デフォルトではいずれの管理ポリシーもアタッチされません。
例:
@CallbackManagementPolicy("oracle/log_policy")
次の表に、oracle.webservices.annotations.async.CallbackManagementPolicy注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.async.CallbackMtomPolicy注釈は、MTOMポリシーを、コールバック・サービスに接続される非同期Webサービスのコールバック・クライアントにアタッチします。デフォルトではいずれのMTOMポリシーもアタッチされません。
例:
@CallbackMtomPolicy("oracle/wsmtom_policy")
次の表に、oracle.webservices.annotations.async.CallbackMtomPolicy注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.async.CallbackProperties注釈を使用すると、コールバック・サービスをコールするときにメッセージ・コンテキスト内で必須となる一連のプロパティを指定できます。
例:
@CallbackProperties( { @Property( name = SecurityConstants.ClientConstants.WSS_CSF_KEY, value = "basic.credentials") } )
次の表に、oracle.webservices.annotations.async.CallbackProperties注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.async.CallbackProperty注釈を使用すると、コールバック・サービスをコールするときにメッセージ・コンテキスト内で必須となる単一のプロパティを指定できます。
例:
@Property( name = SecurityConstants.ClientConstants.WSS_CSF_KEY, value = "basic.credentials")
次の表に、oracle.webservices.annotations.async.CallbackProperty注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.async.CallbackSecurityPolicy注釈は、1つ以上のセキュリティ・ポリシーを、コールバック・サービスに接続される非同期Webサービスのコールバック・クライアントにアタッチします。デフォルトではいずれのセキュリティ・ポリシーもアタッチされません。
例:
@CallbackSecurityPolicy("oracle/wss10_saml_token_with_message_protection_client_policy")
次の表に、oracle.webservices.annotations.async.CallbackSecurityPolicy注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.ManagementPolicy注釈は、管理ポリシーをWebサービスにアタッチします。
例:
@ManagementPolicy( value="oracle/log_policy", enabled = "true")
次の表に、oracle.webservices.annotations.ManagementPolicy注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.MtomPolicy注釈は、MTOMポリシーをWebサービスにアタッチします。
例:
@MtomPolicy( value="oracle/wsmtom_policy", enabled = "true")
次の表に、oracle.webservices.annotations.MtomPolicy注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.PortableWebService注釈は、JWSファイルがOracle Infrastructure Webサービスを実装することをクラス・レベルで指定します。
例:
@PortableWebService
@AsyncWebService
public class HelloService {
public String hello(String name) {
return "Hi " + name;
}
}
次の表に、oracle.webservices.annotations.PortableWebServices注釈に渡される属性を定義します。
表A-13 oracle.webservices.annotations.PortableWebServiceAnnotationの属性
属性 | 説明 | デフォルト |
---|---|---|
endpointInterface |
サービスの抽象Webサービス・コントラクトを定義しているサービス・エンドポイント・インタフェースの名前。 この注釈を使用すると、インタフェース・コントラクトを実装から分離できます。この注釈が存在する場合、サービス・エンドポイント・インタフェースを使用して抽象WSDLコントラクト(portTypeおよびbinding)が決定されます。サービス・エンドポイント・インタフェースには、JavaからWSDLへのマッピングをカスタマイズするためにJSR-181注釈を含めることができます。 サービス実装はサービス・エンドポイント・インタフェースを実装できますが、これは必須ではありません。 この属性が指定されていない場合、Webサービス・コントラクトはサービス実装で定義されている注釈から生成されます。サービス・エンドポイント・インタフェースがターゲット環境で必要な場合は、実装定義の名前を使用して実装定義のパッケージ内に生成されます。 注意: エンドポイント・インタフェースに注釈を付ける場合、この属性は無効です。 |
"" |
name |
Webサービスの名前。この名前は、WSDL 1.1にマップされるときにwsdl:portTypeに対して使用されます。 |
"" |
portName |
Webサービスのポート名。この名前は、WSDL 1.1にマップされるときにwsdl:portに対して使用されます。 注意: エンドポイント・インタフェースに注釈を付ける場合、この属性は無効です。 |
"" |
serviceName |
Webサービスのサービス名。この名前は、WSDL 1.1にマップされるときにwsdl:serviceに対して使用されます。 注意: エンドポイント・インタフェースに注釈を付ける場合、この属性は無効です。 |
"" |
targetNamespace |
ターゲット・ネームスペース。 サービス・エンドポイント・インタフェースに注釈を付ける際に、wsdl:portTypeおよび関連付けられたすべての要素に対して使用されるターゲット・ネームスペース。 (endpointInterface属性を介して)サービス・エンドポイント・インタフェースを参照していないサービス実装に注釈を付ける際は、wsdl:portType、wsdl:serviceおよび関連付けられたXML要素に対してターゲット・ネームスペースが使用されます。 (endpointInterface属性を介して)サービス・エンドポイント・インタフェースを参照しているサービス実装に注釈を付ける際は、wsdl:portType、wsdl:serviceおよび関連付けられたXML要素に対してターゲット・ネームスペースが使用されます。 |
"" |
wsdlLocation |
Webサービスを記述する事前定義済WSLDの場所。値は、既存のWSDLファイルを参照する相対URLまたは絶対URLです。 この属性は、サービス実装が事前定義済WSDLコントラクトを実装していることを示します。サービス実装とWSDLで定義されているportTypeおよびbindingとが矛盾している場合、エラー・メッセージが戻されます。 1つのWSDLファイルに複数のportTypeおよびbindingが含まれる場合もあります。サービス実装の注釈によって、Webサービスに対応する特定のportTypeおよびbindingが決まります。 |
"" |
oracle.webservices.annotations.ReliabilityPolicy注釈は、信頼性のあるメッセージング・ポリシーをWebサービスにアタッチします。
例:
@MtomPolicy( value="oracle/wsrm11_policy", enabled = "true")
次の表に、oracle.webservices.annotations.ReliabilityPolicy注釈に渡すことができる属性を定義します。
oracle.webservices.annotations.async.ResponseWebService注釈を使用すると、レスポンスWebサービス・ポート情報をカスタマイズできます。
次の表に、oracle.webservices.annotations.async.ResponseWebService注釈に渡される属性を定義します。
表A-15 oracle.webservices.annotations.async.ResponseWebService注釈の属性
属性 | 説明 | デフォルト |
---|---|---|
name |
レスポンスportTypeの名前。 WSDL 1.1にマップされるときにwsdl:portTypeの名前として使用されます。 |
<注釈付きクラスの名前> + "Response" |
targetNamespace |
wsdl:portType、wsdl:serviceおよび関連付けられたすべての要素に対して使用されるターゲット・ネームスペース。 |
非同期Webサービスのターゲット・ネームスペースと同じです。 |
partnerLinkRole |
WSDLのパートナ・リンク要素内で使用されるコールバックportTypeのロール名。 |
なし |
serviceRefName |
レスポンス・メッセージの送信に使用されるサービス参照用のサービス参照名。 この値は、デプロイされたアーカイブに対して一意である必要があります。次のものを定義するために使用されます。
|
<注釈付きクラスの名前> + "ResponseWebService.SERVICE_REF_NAME_SUFFIX" |
serviceName |
このリリースでは使用されません。 |
なし |
portName |
このリリースでは使用されません。 |
なし |
oracle.webservices.annotations.SecurityPolicies注釈は、@SecurityPolicy注釈の配列を指定します。複数のWS-Policyファイルをクラスにアタッチする場合は、この注釈を使用します。
例:
@SecurityPolicies({ @SecurityPolicy(value= "policy:oracle/wss10_username_token_with_message_protection_server_policy"), @SecurityPolicy(value= "policy:oracle/authorization_policy")})
oracle.webservices.annotations.SecurityPolicy注釈は、セキュリティ・ポリシーをリクエストSOAPメッセージまたはレスポンスSOAPメッセージにアタッチします。この注釈を単独で使用して、単一のWS-Policyファイルをクラスに適用できます。複数のWS-Policyファイルをクラスに適用する場合は、@SecurityPolicies注釈を使用してそれらのファイルを1つにまとめます。
例:
@SecurityPolicy(value= "policy:oracle/wss10_username_token_with_message_protection_server_policy"),
次の表は、oracle.webservices.annotations.SecurityPolicy注釈に渡すことができる属性をまとめたものです。