SOAP 헤더 액세스에 대한 EGL 지원

SOAP 헤더에 액세스하는 데는 몇 가지 함수를 사용할 수 있습니다. HTTP 헤더에 액세스하는 데 대한 세부사항은 이 주제의 끝부분에 있는 처음 네 개의 참조 주제를 참조하십시오.

SOAP 헤더는 EGL로 생성된 Java 기반 SOAP 서비스, 또는 EGL로 생성된 Java 또는 JavaScript 기반 SOAP 서비스 요청자만 액세스할 수 있습니다.

이벤트 플로우를 보려면 SOAP 헤더가 다음 레코드 파트로 표현된 예제를 참조하십시오.
Record SOAPHeader
   field1 string{@xmlelement{namespace = "http://services";}};
   field2 string{@xmlelement{namespace = "http://services";}};
end

레코드 파트는 구조화되지 않아야 하며 각 필드는 네임스페이스를 지정해야 합니다.

서비스 코드는 다음과 같습니다.
service SayHello
   function hello()
      getSOAPRequestHeaders(header);
      //...
      header SOAPHeader{field1="valueA", field2="valueB"};
      ServiceLib.setSOAPResponseHeaders(header);
   endend

함수 hello는 앞서 제시된 유형의 레코드로 SOAP 요청 헤더를 검색하고, 해당 레코드에 값을 지정한 후 요청된 값을 사용하여 SOAP 응답 헤더를 설정합니다.

요청자 코드는 다음과 같습니다.
srvc SayHello{@BindService {}};
header SOAPHeader{field1="value1", field2="value2"};
ServiceLib.setSOAPRequestHeaders(srvc, header);
response string = srvc.hello("ABC");
ServiceLib.getSOAPResponseHeaders(srvc, header);

요청자는 서비스 액세스 변수를 선언하고, 앞서 제시된 유형의 레코드에 값을 지정하고, 이러한 값으로 SOAP 요청 헤더를 설정하고, 서비스를 호출한 후 앞서 제시된 유형의 레코드로 헤더를 검색합니다.

참고: EGL로 생성된 SOAP 서비스 또는 SOAP 서비스 요청자는 JAX-RPC가 아니라 JAX-WS에 의존해야 합니다.