12.3. 서비스 공급자 구성
12.3.1. HTTP 서비스 공급자의 메커니즘
HTTP 서비스 공급자 끝점은 활성 요청을 계속 유지하는지, 캐시와 상호 작용하는 방법, 소비자와 통신할 때 오류임을 허용하는 방법을 포함하여 다수의 HTTP 연결 속성을 지정할 수 있습니다.
서비스 공급자 끝점은 다음 두 가지 메커니즘을 사용하여 구성할 수 있습니다.
12.3.2. 설정 사용
12.3.2.1. 네임스페이스
HTTP 공급자 끝점을 구성하는 데 사용되는 요소는 네임스페이스 http://cxf.apache.org/transports/http/configuration 에 정의되어 있습니다. 일반적으로 접두사 http-conf
를 사용합니다. HTTP 구성 요소를 사용하려면 예 12.9. “HTTP 공급자 구성 네임스페이스” 에 표시된 행을 끝점 구성 파일의 빈
요소에 추가해야 합니다. 또한 구성 요소의 네임스페이스를 xsi:schemaLocation
속성에 추가해야 합니다.
예 12.9. HTTP 공급자 구성 네임스페이스
<beans ... xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" ... xsi:schemaLocation="... http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd ...">
12.3.2.2. Cryostat 런타임 또는 Netty 런타임
http-conf
네임스페이스의 요소를 사용하여 Cryostat 런타임 또는 Netty 런타임을 구성할 수 있습니다.
12.3.2.3. 대상 요소
http-conf:destination
요소 및 해당 하위 요소를 사용하여 HTTP 서비스 공급자 끝점을 구성합니다. http-conf:destination
요소는 엔드포인트에 해당하는 WSDL 포트
요소를 지정하는 단일 속성 name
을 사용합니다. name
속성 값은 portQName'.http-destination' 형식을 사용합니다. 예 12.10. “HTTP-conf:destination
요소” 끝점의 대상 네임스페이스가 http://widgets.widgetvendor.net인 경우 WSDL 조각 < port binding="widgetSOAPBinding" name="widgetSOAPPort
>에서 지정하는 끝점에 대한 구성을 추가하는 데 사용되는 http-conf:destination
요소를 표시합니다.
예 12.10. HTTP-conf:destination
요소
... <http-conf:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-destination"> ... </http-conf:destination> ...
http-conf:destination
요소에는 구성 정보를 지정하는 여러 하위 요소가 있습니다. 해당 내용은 표 12.4. “HTTP 서비스 공급자 끝점을 구성하는 데 사용되는 요소” 에 설명되어 있습니다.
element | 설명 |
---|---|
HTTP 연결 속성을 지정합니다. “server 요소”을 참조하십시오. | |
HTTP 요청을 처리하기 위한 컨텍스트 일치 전략을 구성하는 매개변수를 지정합니다. | |
이 대상이 처리하는 HTTP 요청의 매개변수 순서가 수정되었는지 여부를 지정합니다. |
12.3.2.4. server 요소
http-conf:server
요소는 서비스 공급자 끝점의 HTTP 연결의 속성을 구성하는 데 사용됩니다. 표 12.5. “HTTP 서비스 공급자 구성 속성” 에 설명된 해당 속성은 연결의 속성을 지정합니다.
속성 | 설명 |
---|---|
연결 시간이 초과되기 전에 서비스 공급자가 요청을 수신하려고 시도하는 시간(밀리초)을 설정합니다. 기본값은
| |
요청을 수신할 때 오류가 발생할 때 예외가 throw되는지 여부를 지정합니다. 기본값은 | |
소비자에게 응답을 보낼 때 오류가 발생할 때 예외가 throw되는지 여부를 지정합니다. 기본값은 | |
응답이 전송된 후 서비스 공급자가 연결에 대한 요청을 열린 상태로 유지할지 여부를 지정합니다. 기본값은 | |
클라이언트 요청에 지정된 URL이 요청된 리소스에 더 이상 적합하지 않은 경우 클라이언트 요청을 리디렉션해야 하는 URL을 지정합니다. 이 경우 서버 응답의 첫 번째 줄에서 상태 코드가 자동으로 설정되지 않으면 상태 코드가 302로 설정되고 상태 설명은 Object Moved로 설정됩니다. 이 값은 HTTP RedirectURL 속성 값으로 사용됩니다. | |
서비스 공급자에서 소비자로의 응답을 포함하는 체인과 관련된 캐시에서 준수해야 하는 동작에 대한 지시문을 지정합니다. 12.3.4절. “서비스 공급자 캐시 제어 방식”을 참조하십시오. | |
응답에서 리소스를 보내는 URL을 설정합니다. | |
응답에서 전송되는 정보의 미디어 유형을 지정합니다. 미디어 유형은 다용도 인터넷 메일 확장(MIME) 유형을 사용하여 지정됩니다. 이 값은 HTTP ContentType 위치 값으로 사용됩니다. | |
서비스 공급자가 보내는 정보에 적용된 추가 콘텐츠 인코딩을 지정합니다. 컨텐츠 인코딩 라벨은 INA(Internet Assigned Numbers Authority)에 의해 규제됩니다. 가능한 콘텐츠 인코딩 값에는 zip, gzip, compress, deflate, identity가 포함됩니다. 이 값은 HTTP ContentEncoding 속성 값으로 사용됩니다. 콘텐츠 인코딩의 주요 용도는 zip 또는 gzip과 같은 일부 인코딩 메커니즘을 사용하여 문서를 압축할 수 있도록 하는 것입니다. Apache CXF는 콘텐츠 코딩에 대한 유효성 검사를 수행하지 않습니다. 애플리케이션 수준에서 지정된 콘텐츠 코딩이 지원되도록 하는 것은 사용자의 책임이 있습니다. | |
응답을 전송하는 서버 유형을 지정합니다. 값은 |
12.3.2.5. 예
예 12.11. “HTTP 서비스 공급자 끝점 구성” keep-alive 요청을 준수하고 모든 통신 오류를 비활성화하는 HTTP 서비스 공급자 끝점의 구성을 표시합니다.
예 12.11. HTTP 서비스 공급자 끝점 구성
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <http-conf:destination name="{http://apache.org/hello_world_soap_http}SoapPort.http-destination"> <http-conf:server SuppressClientSendErrors="true" SuppressClientReceiveErrors="true" HonorKeepAlive="true" /> </http-conf:destination> </beans>
12.3.3. WSDL 사용
12.3.3.1. 네임스페이스
HTTP 공급자 끝점을 구성하는 데 사용되는 WSDL 확장 요소는 http://cxf.apache.org/transports/http/configuration 네임스페이스에 정의됩니다. 일반적으로 접두사 http-conf
를 사용합니다. HTTP 구성 요소를 사용하려면 예 12.12. “HTTP 공급자 WSDL 요소의 네임스페이스” 에 표시된 행을 끝점의 WSDL 문서의 definitions
요소에 추가해야 합니다.
예 12.12. HTTP 공급자 WSDL 요소의 네임스페이스
<definitions ... xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
12.3.3.2. Cryostat 런타임 또는 Netty 런타임
http-conf
네임스페이스의 요소를 사용하여 Cryostat 런타임 또는 Netty 런타임을 구성할 수 있습니다.
12.3.3.3. server 요소
http-conf:server
요소는 WSDL 문서에서 HTTP 서비스 공급자의 연결 속성을 지정하는 데 사용됩니다. http-conf:server
요소는 WSDL 포트
요소의 자식입니다. 구성 파일에 사용된 server
요소와 동일한 특성을 갖습니다. 속성은 표 12.5. “HTTP 서비스 공급자 구성 속성” 에 설명되어 있습니다.
12.3.3.4. 예
예 12.13. “HTTP 서비스 공급자 끝점을 구성하는 WSDL” 은 캐시와 상호 작용하지 않도록 지정하는 HTTP 서비스 공급자 끝점을 구성하는 WSDL 조각을 표시합니다.
예 12.13. HTTP 서비스 공급자 끝점을 구성하는 WSDL
<service ... > <port ... > <soap:address ... /> <http-conf:server CacheControl="no-cache" /> </port> </service>
12.3.4. 서비스 공급자 캐시 제어 방식
표 12.6. “HTTP-conf:서버
캐시 제어ights” HTTP 서비스 공급자가 지원하는 캐시 제어 지시문을 나열합니다.
지시문 | 동작 |
---|---|
no-cache | 캐시는 먼저 서버와 해당 응답을 재평가하지 않고 후속 요청을 충족하기 위해 특정 응답을 사용할 수 없습니다. 이 값으로 특정 응답 헤더 필드를 지정하는 경우 제한은 응답 내의 해당 헤더 필드에만 적용됩니다. 응답 헤더 필드를 지정하지 않으면 제한 사항이 전체 응답에 적용됩니다. |
public | 모든 캐시는 응답을 저장할 수 있습니다. |
비공개 | 응답은 단일 사용자를 위한 것이므로 공용(공유) 캐시는 응답을 저장할 수 없습니다. 이 값으로 특정 응답 헤더 필드를 지정하는 경우 제한은 응답 내의 해당 헤더 필드에만 적용됩니다. 응답 헤더 필드를 지정하지 않으면 제한 사항이 전체 응답에 적용됩니다. |
no-store | 캐시는 응답의 일부 또는 이를 호출한 요청의 일부를 저장하지 않아야 합니다. |
no-transform | 캐시는 서버와 클라이언트 간의 응답에서 콘텐츠의 미디어 유형 또는 위치를 수정하지 않아야 합니다. |
must-revalidate | 캐시는 후속 응답에서 해당 항목을 사용하기 전에 응답과 관련된 만료된 항목을 다시 검증해야 합니다. |
proxy-revalidate | 공유 캐시에서만 적용할 수 있고 비공개 비공유 캐시에서 무시할 수 있다는 점을 제외하고 must-revalidate와 동일합니다. 이 지시문을 사용하는 경우 공용 cache 지시문도 사용해야 합니다. |
max-age | 클라이언트는 지정된 시간(초)보다 경과하지 않는 응답을 허용할 수 있습니다. |
s-max-age | 공유 캐시에만 적용할 수 있고 비공개 비공유 캐시에서 무시된다는 점을 제외하고 max-age와 동일합니다. s-max-age로 지정된 기간은 max-age로 지정된 기간을 재정의합니다. 이 지시문을 사용하는 경우 proxy-revalidate 지시문도 사용해야 합니다. |
cache-extension | 다른 캐시 지시문에 대한 추가 확장을 지정합니다. 확장 기능은 정보 또는 동작일 수 있습니다. 확장된 지시문은 표준 지시문의 컨텍스트에서 지정되므로 확장된 지시문을 인식하지 못하는 애플리케이션에서 표준 지시문에서 요구하는 동작을 준수할 수 있습니다. |