12장. HTTP 사용

초록

HTTP는 웹의 기본 전송입니다. 엔드포인트 간에 통신할 수 있도록 표준화되고 강력하고 유연한 플랫폼을 제공합니다. 이러한 요인으로 인해 대부분의 WS-* 사양에 대한 전송이 가정되고 RESTful 아키텍처에 통합되어 있습니다.

12.1. 기본 HTTP 끝점 추가

12.1.1. 대체 HTTP 런타임

Apache CXF는 다음과 같은 대체 HTTP 런타임 구현을 지원합니다.

12.1.2. Netty HTTP URL

일반적으로 HTTP 엔드포인트는 클래스 경로에 포함된 모든 HTTP 런타임( Undertow 또는 Netty)을 사용합니다. Undertow 런타임과 Netty 런타임이 모두 classpath에 포함된 경우, 기본적으로 Undertow 런타임이 사용되므로 Netty 런타임을 사용할 때 명시적으로 지정해야 합니다.

classpath에서 두 개 이상의 HTTP 런타임을 사용할 수 있는 경우 다음 형식을 갖도록 끝점 URL을 지정하여 Undertow 런타임을 선택할 수 있습니다.

netty://http://RestOfURL

12.1.3. 페이로드 유형

사용 중인 페이로드 형식에 따라 HTTP 끝점의 주소를 지정하는 세 가지 방법이 있습니다.

  • SOAP 1.1은 표준화된 soap:address 요소를 사용합니다.
  • SOAP 1.2는 soap12:address 요소를 사용합니다.
  • 다른 모든 페이로드 형식은 http:address 요소를 사용합니다.
참고

Camel 2.16.0 릴리스에서 Apache Camel CXF Payload는 즉시 스트림 캐시를 지원합니다.

12.1.4. SOAP 1.1

HTTP를 통해 SOAP 1.1 메시지를 전송하는 경우 SOAP 1.1 주소 요소를 사용하여 끝점의 주소를 지정해야 합니다. 여기에는 끝점의 주소를 URL로 지정하는 하나의 속성 위치 가 있습니다. SOAP 1.1 address 요소는 네임스페이스 http://schemas.xmlsoap.org/wsdl/soap/ 에 정의되어 있습니다.

예 12.1. “SOAP 1.1 포트 요소” HTTP를 통해 SOAP 1.1 메시지를 보내는 데 사용되는 포트 요소를 표시합니다.

예 12.1. SOAP 1.1 포트 요소

<definitions ...
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" ...>
  ...
  <service name="SOAP11Service">
    <port binding="SOAP11Binding" name="SOAP11Port">
      <soap:address location="http://artie.com/index.xml">
    </port>
  </service>
  ...
<definitions>

12.1.5. SOAP 1.2

HTTP를 통해 SOAP 1.2 메시지를 전송하는 경우 SOAP 1.2 주소 요소를 사용하여 끝점의 주소를 지정해야 합니다. 여기에는 끝점의 주소를 URL로 지정하는 하나의 속성 위치 가 있습니다. SOAP 1.2 address 요소는 네임스페이스 http://schemas.xmlsoap.org/wsdl/soap12/ 에 정의되어 있습니다.

예 12.2. “SOAP 1.2 포트 요소” HTTP를 통해 SOAP 1.2 메시지를 보내는 데 사용되는 포트 요소를 표시합니다.

예 12.2. SOAP 1.2 포트 요소

<definitions ...
             xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" ... >
  <service name="SOAP12Service">
    <port binding="SOAP12Binding" name="SOAP12Port">
      <soap12:address location="http://artie.com/index.xml">
    </port>
  </service>
  ...
</definitions>

12.1.6. 기타 메시지 유형

메시지가 SOAP 이외의 페이로드 형식으로 매핑되면 HTTP 주소 요소를 사용하여 끝점 주소 를 지정해야 합니다. 여기에는 끝점의 주소를 URL로 지정하는 하나의 속성 위치 가 있습니다. HTTP 주소 요소는 네임스페이스 http://schemas.xmlsoap.org/wsdl/http/ 에 정의되어 있습니다.

예 12.3. “HTTP 포트 요소” XML 메시지를 보내는 데 사용되는 포트 요소를 표시합니다.

예 12.3. HTTP 포트 요소

<definitions ...
             xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" ... >
  <service name="HTTPService">
    <port binding="HTTPBinding" name="HTTPPort">
      <http:address location="http://artie.com/index.xml">
    </port>
  </service>
  ...
</definitions>