Menu Close
24.3.4.23. @Policy プロパティー
プロパティー | 説明 |
---|---|
| (必須) ポリシー定義が含まれるファイルの場所。 |
|
(任意) WSDL を生成するときに生成されたコントラクトにポリシーを含めるかどうか。デフォルトは |
| (任意) このドキュメントを WSDL ファイルのどこに表示するかを指定します。使用できる配置値の一覧は、「WSDL コントラクトでの配置」を参照してください。 |
|
(任意) 配置が |
@Policies アノテーション
@Policies
アノテーションは、org.apache.cxf.annotations.Policies
インターフェースによって定義されます。これは SEI または SEI のメソッドに配置できます。
このアノテーションは、複数の @Policy
アノテーションをリストにグループ化する方法を提供します。
WSDL コントラクトでの配置
ポリシーが WSDL コントラクトのどこに表示されるかを指定するには、Policy.Placement
型である placement
プロパティーを指定します。配置には、以下のいずれかの値を使用できます。
Policy.Placement.BINDING Policy.Placement.BINDING_OPERATION Policy.Placement.BINDING_OPERATION_FAULT Policy.Placement.BINDING_OPERATION_INPUT Policy.Placement.BINDING_OPERATION_OUTPUT Policy.Placement.DEFAULT Policy.Placement.PORT_TYPE Policy.Placement.PORT_TYPE_OPERATION Policy.Placement.PORT_TYPE_OPERATION_FAULT Policy.Placement.PORT_TYPE_OPERATION_INPUT Policy.Placement.PORT_TYPE_OPERATION_OUTPUT Policy.Placement.SERVICE Policy.Placement.SERVICE_PORT
@Policy の例
以下の例は、WSDL ポリシーを HelloWorld
SEI に関連付け、ポリシーを sayHi
メソッドに関連付ける方法を示しています。ポリシー自体は、ファイルシステムの annotationpolicies
ディレクトリーの XML ファイルに保存されます。
@WebService @Policy(uri = "annotationpolicies/TestImplPolicy.xml", placement = Policy.Placement.SERVICE_PORT), @Policy(uri = "annotationpolicies/TestPortTypePolicy.xml", placement = Policy.Placement.PORT_TYPE) public interface HelloWorld { @Policy(uri = "annotationpolicies/TestOperationPTPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION), String sayHi(@WebParam(name = "text") String text); }
@Policies の例
以下の例に示すように、@Policies
アノテーションを使用して、複数の @Policy
アノテーションをリストにグループ化できます。
@WebService @Policies({ @Policy(uri = "annotationpolicies/TestImplPolicy.xml", placement = Policy.Placement.SERVICE_PORT), @Policy(uri = "annotationpolicies/TestPortTypePolicy.xml", placement = Policy.Placement.PORT_TYPE) }) public interface HelloWorld { @Policy(uri = "annotationpolicies/TestOperationPTPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION), String sayHi(@WebParam(name = "text") String text); }