24.3.4.23. @policy 속성
속성 | 설명 |
---|---|
| (필수) 정책 정의가 포함된 파일의 위치입니다. |
|
(선택 사항) WSDL을 생성할 때 생성된 계약에 정책을 포함할지 여부입니다. 기본값은 |
| (선택 사항) WSDL 파일에서 이 문서가 표시되는 위치를 지정합니다. 가능한 배치 값 목록은 “WSDL 계약 포함” 에서 참조하십시오. |
|
(선택 사항) 배치가 |
24.3.4.23.1. @policies 주석
@Policies
주석은 org.apache.cxf.annotations.Policies
인터페이스에서 정의됩니다. SEI 또는 thse SEI 방법에 배치할 수 있습니다.
이 주석은 여러 @Policy
주석을 목록으로 그룹화하는 방법을 제공합니다.
24.3.4.23.2. 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
24.3.4.23.3. @Policy의 예
다음 예제에서는 WSDL 정책을 HelloWorld
SEI와 연결하는 방법과 정책을 sayHi
메서드와 연결하는 방법을 보여줍니다. 정책은 주석
디렉터리에 있는 파일 시스템의 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); }
24.3.4.23.4. @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); }