핸들러를 사용할 경우 AxisClient가 핸들러를 호출해야 시기를 관리하는 규칙이 있는 WSDD 파일을 구성해야 합니다. 서비스 핸들러와 글로벌 핸들러는 WSDD 파일의 별도 섹션에 정의됩니다.
WSDD 파일은 C++용 웹 서비스 클라이언트가 요청 메시지를 빌드하고 응답 메시지를 디코딩할 때 사용하는 정보가 포함된 XML 스타일 파일입니다. WSDD 파일에는 두 개의 기본 섹션이 있습니다. 하나는 서비스 핸들러에 대한 섹션이고 다른 하나는 글로벌 핸들러에 대한 섹션입니다. 서비스 핸들러의 경우 핸들러가 필요한 각 서비스 정의는 pre-pivot 및 post-pivot 호출에 제공된 적절한 핸들러 목록으로 정의되어야 합니다. 글로벌 핸들러의 경우 WSDD 파일은 호출된 pre-pivot 및 post-pivot인 핸들러만 나열해야 합니다. 글로벌 핸들러에 대한 자세한 정보는 WSDD 파일을 참조하십시오.
다음 표는 요청 및 응답 양측에서 핸들러를 호출하는 데 필요한 WSDD 파일의 예를 행별로 보여 줍니다. 핸들러 파일 이름은 운영 체제에 따라 다양합니다. 이 예제에서 사용된 파일 이름은 Windows용입니다.
행 이름 | WSDD 행 |
---|---|
1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:C="http://xml.apache.org/axis/wsdd/providers/c"> |
3 | <service name="Handler" provider="CPP:DOCUMENT" description="Handler"> |
4 | <requestFlow> |
5 | <handler name="myClientHandlerReq"
type="<inst_dir>\samples\handlers\myClientHandler.dll">
|
6 | </handler> |
7 | </requestFlow> |
8 | <responseFlow> |
9 | <handler name="myClientHandlerRes"
type="<inst_dir>\samples\handlers\myClientHandler.dll">
|
10 | </handler> |
11 | </responseFlow> |
12 | </service> |
13 | </deployment> |
다음 표는 WSDD 파일의 중요한 부분을 설명합니다.
행 번호 | 설명 |
---|---|
2 | 전개 태그는 루트 요소입니다. |
3 | 서비스 태그가 Axis 서비스의 유형을 정의합니다. 이름 속성은 서비스 이름을 정의합니다. 프로바이더 속성은 서비스에 대한 프로바이더 이름을 정의하고 xmlns:C="http://xml.apache.org/axis/wsdd/providers/c"에 표시되어야 합니다. 설명 속성은 이 행의 주석을 정의합니다. |
4 | requestFlow 태그는 요청 메시지가 전송될 때 한 개 이상의 핸들러 목록 시작을 정의합니다. 핸들러는 WSDD 파일에 표시되는 순서대로 호출됩니다. |
5 | requestFlow 내의 핸들러 태그는 핸들러의 위치에 대한 완전한 경로를 나타내는 호출될 핸들러의 고유한 이름 및 유형을 정의합니다. |
8 | responseFlow 태그는 응답 메시지를 받으면 호출되는 한 개 이상의 핸들러 목록 시작을 정의합니다. 핸들러는 WSDD 파일에 표시되는 순서대로 호출됩니다. |
9 | responseFlow 내의 핸들러 태그는 핸들러의 위치에 대한 완전한 경로를 나타내는 호출될 핸들러의 고유한 이름 및 유형을 정의합니다. |
각 태그 및 태그에 포함된 부분에 대한 자세하나 설명은 WSDD 파일을 참조하십시오.