21.2. WS-RM 인터셉터

21.2.1. 개요

Apache CXF에서는 WS-RM 기능이 인터셉터로 구현됩니다. Apache CXF 런타임은 인터셉터를 사용하여 전송 및 수신되는 원시 메시지를 가로채고 작업합니다. 전송에서 메시지를 수신하면 메시지 오브젝트를 생성하고 인터셉터 체인을 통해 해당 메시지를 전송합니다. 애플리케이션의 인터셉터 체인에 WS-RM 인터셉터가 포함된 경우 애플리케이션은 신뢰할 수 있는 메시징 세션에 참여할 수 있습니다. WS-RM 인터셉터는 메시지 청크의 수집 및 집계를 처리합니다. 또한 모든 승인 및 재전송 논리를 처리합니다.

21.2.2. Apache CXF WS-RM 인터셉터

Apache CXF WS-RM 구현은 4개의 인터셉터로 구성되어 있으며, 이는 표 21.1. “Apache CXF WS-ReliableMessaging Interceptors” 에 설명되어 있습니다.

표 21.1. Apache CXF WS-ReliableMessaging Interceptors

인터셉터설명

org.apache.cxf.ws.rm.RMOutInterceptor

발신 메시지에 대한 신뢰성 보장을 제공하는 논리적인 측면을 다룹니다.

CreateSequence 요청을 보내고 CreateSequenceResponse 응답을 기다립니다.

애플리케이션 메시지의 시퀀스 속성-ID 및 메시지 번호 집계를 담당합니다.Also responsible for agggregating the sequence properties-ID and message number-for an application message.

org.apache.cxf.ws.rm.RMInInterceptor

애플리케이션 메시지에서 금지된 RM 프로토콜 메시지 및 시퀀스Acknowledgement 메시지를 가로채기 및 처리할 책임이 있습니다.

org.apache.cxf.ws.rm.RMCaptureInInterceptor

영구 스토리지의 수신 메시지를 캐싱합니다.

org.apache.cxf.ws.rm.RMDeliveryInterceptor

애플리케이션에 대한 InOrder 메시지 제공.

org.apache.cxf.ws.rm.soap.RMSoapInterceptor

신뢰성 속성을 SOAP 헤더로 인코딩 및 디코딩해야 합니다.

org.apache.cxf.ws.rm.RetransmissionInterceptor

나중에 다시 전송할 수 있도록 애플리케이션 메시지의 복사본을 생성합니다.

21.2.3. WS-RM 활성화

인터셉터 체인에 WS-RM 인터셉터가 있으면 필요한 경우 WS-RM 프로토콜 메시지가 교환됩니다. 예를 들어 아웃바운드 인터셉터 체인에서 첫 번째 애플리케이션 메시지를 가로채는 경우 RMOutInterceptorCreateSequence 요청을 보내고 CreateSequenceResponse 응답을 수신할 때까지 원래 애플리케이션 메시지를 처리하도록 기다립니다. 또한 WS-RM 인터셉터는 애플리케이션 메시지에 시퀀스 헤더를 추가하고 대상 측에서 메시지를 추출합니다. 메시지를 안정적으로 교환하기 위해 애플리케이션 코드를 변경할 필요가 없습니다.

WS-RM을 활성화하는 방법에 대한 자세한 내용은 21.3절. “WS-RM 활성화” 을 참조하십시오.

21.2.4. WS-RM 속성 구성

구성을 통해 시퀀스 분리 및 신뢰할 수 있는 교환의 다른 측면을 제어합니다. 예를 들어 기본적으로 Apache CXF는 시퀀스의 수명을 최대화하려고 하므로 대역 외 WS-RM 프로토콜 메시지로 인한 오버헤드가 감소합니다. 애플리케이션 메시지당 별도의 시퀀스를 사용하도록 하려면 WS-RM 소스의 시퀀스 종료 정책(최대 시퀀스 길이를 1로 설정)을 구성합니다.

WS-RM 동작 구성에 대한 자세한 내용은 21.5절. “WS-RM 구성” 을 참조하십시오.