6.2. Cryostat 1.1 바인딩에 Syslog 헤더 추가


6.2.1. 개요

Cryostat 헤더는 soap:header 요소를 기본 Cryostat 1.1 바인딩에 추가하여 정의됩니다. soap:header 요소는 바인딩의 입력,출력fault 요소의 선택적 자식입니다. Cryostat 헤더는 상위 메시지의 일부가 됩니다. Cryostat 헤더는 메시지와 메시지 부분을 지정하여 정의됩니다. 각 Cryostat 헤더는 하나의 메시지 부분만 포함할 수 있지만 필요에 따라 많은 Cryostat 헤더를 삽입할 수 있습니다.

6.2.2. 구문

Cryostat 헤더를 정의하는 구문은 예 6.3. “Cryostat 헤더 구문” 에 표시됩니다. soap:headermessage 속성은 해당 부분이 헤더에 삽입되는 메시지의 정규화된 이름입니다. part 속성은 Cryostat 헤더에 삽입된 메시지 부분의 이름입니다. Cryostat 헤더는 항상 문서 스타일이므로, ESP 헤더에 삽입된 WSDL 메시지 부분은 요소를 사용하여 정의해야 합니다. messagepart 특성을 함께 사용하여 Cryostat 헤더에 삽입할 데이터를 완전히 설명합니다.

예 6.3. Cryostat 헤더 구문

<binding name="headwig">
  <soap:binding style="document"
                transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="weave">
      <soap:operation soapAction="" style="document"/>
      <input name="grain">
        <soap:body ... />
        <soap:header message="QName" part="partName"/>
      </input>
...
</binding>

soap:header 는 필수 메시지일부 속성뿐만 아니라 네임스페이스, use, encodingStyle 특성도 지원합니다. 이러한 속성은 soap:body 와 동일한 soap:header 에 대해 작동합니다.

6.2.3. 본문과 헤더 간에 메시지 분할

message part가 contract의 유효한 메시지 부분이 될 수 있습니다. 이 필드는 parent 메시지의 일부일 수도 있으며, 이 메시지는 Cryostat 본문으로 사용됩니다. 동일한 메시지에 정보를 두 번 보낼 가능성은 낮기 때문에 Cryostat 바인딩은 Cryostat 본문에 삽입되는 메시지 부분을 지정하는 수단을 제공합니다.

soap:body 요소에는 공백으로 구분된 구성 요소 목록을 사용하는 선택적 속성인 parts 가 있습니다. 부분이 정의되면 나열된 메시지 부분만 Cryostat 본문에 삽입됩니다. 그런 다음 나머지 부분을 Cryostat 헤더에 삽입할 수 있습니다.

참고

상위 메시지의 일부를 사용하여 Cryostat 헤더를 정의하면 Apache CXF가 자동으로 Cryostat 헤더에 채워집니다.

6.2.4. 예

예 6.4. “Cryostat 헤더를 사용한 Cryostat 1.1 바인딩” 예 6.1. “시스템 인터페이스 순서 지정” 에 표시된 orderWidgets 서비스의 수정된 버전을 표시합니다. 이 버전은 각 주문에 요청 및 응답의 Cryostat 헤더에 배치된 xsd:base64binary 값이 적용되도록 수정되었습니다. Cryostat 헤더는 widgetKey 메시지의 keyVal 부분으로 정의됩니다. 이 경우 입력 또는 출력 메시지의 일부가 아니므로 애플리케이션 논리에 Cryostat 헤더를 추가해야 합니다.

예 6.4. Cryostat 헤더를 사용한 Cryostat 1.1 바인딩

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="widgetOrderForm.wsdl"
    targetNamespace="http://widgetVendor.com/widgetOrderForm"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://widgetVendor.com/widgetOrderForm"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsd1="http://widgetVendor.com/types/widgetTypes"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">

<types>
  <schema targetNamespace="http://widgetVendor.com/types/widgetTypes"
           xmlns="http://www.w3.org/2001/XMLSchema"
           xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <element name="keyElem" type="xsd:base64Binary"/>
  </schema>
</types>

<message name="widgetOrder">
  <part name="numOrdered" type="xsd:int"/>
</message>
<message name="widgetOrderBill">
  <part name="price" type="xsd:float"/>
</message>
<message name="badSize">
  <part name="numInventory" type="xsd:int"/>
</message>
<message name="widgetKey">
  <part name="keyVal" element="xsd1:keyElem"/>
</message>

<portType name="orderWidgets">
  <operation name="placeWidgetOrder">
    <input message="tns:widgetOrder" name="order"/>
    <output message="tns:widgetOrderBill" name="bill"/>
    <fault message="tns:badSize" name="sizeFault"/>
  </operation>
</portType>

<binding name="orderWidgetsBinding" type="tns:orderWidgets">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="placeWidgetOrder">
      <soap:operation soapAction="" style="document"/>
      <input name="order">
        <soap:body use="literal"/>
        <soap:header message="tns:widgetKey" part="keyVal"/>
      </input>
      <output name="bill">
        <soap:body use="literal"/>
        <soap:header message="tns:widgetKey" part="keyVal"/>
      </output>
      <fault name="sizeFault">
        <soap:body use="literal"/>
      </fault>
  </operation>
</binding>
...
</definitions>

헤더 값이 입력 및 출력 메시지의 일부가 되도록 예 6.4. “Cryostat 헤더를 사용한 Cryostat 1.1 바인딩” 를 수정할 수도 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.