41.2. 서비스 공급자의 XML 사용

초록

공급자 인터페이스는 메시지에서 직접 원시 XML로 직접 작동하는 서비스 공급자를 구현할 수 있는 하위 수준 JAX-WS API입니다. 메시지는 Provider 인터페이스를 구현하는 개체에 전달하기 전에 JAXB 개체에 패키징되지 않습니다.

41.2.1. 메시징 모드

41.2.1.1. 개요

공급자 인터페이스를 구현하는 오브젝트에는 두 가지 메시징 모드 가 있습니다.

지정하는 메시징 모드는 구현에 전달되는 메시징 세부 수준을 결정합니다.

41.2.1.2. 메시지 모드

메시지 모드 를 사용할 때 공급자 구현은 완전한 메시지와 함께 작동합니다. 전체 메시지에는 바인딩 특정 헤더 및 래퍼가 포함됩니다. 예를 들어 SOAP 바인딩을 사용하는 공급자 구현은 완전히 지정된 SOAP 메시지로서 요청을 수신합니다. 구현에서 반환된 응답은 완전히 지정된 SOAP 메시지여야 합니다.

공급자 구현에서 예 41.9. “공급자 구현에서 메시지 모드 사용 지정” 와 같이 java.xml.ws.Service.Mode.MESSAGE 값을 javax.xml.ws.ServiceMode 주석에 대한 값으로 제공하여 메시지 모드를 사용하도록 지정하려면

예 41.9. 공급자 구현에서 메시지 모드 사용 지정

@WebServiceProvider
@ServiceMode(value=Service.Mode.MESSAGE)
public class stockQuoteProvider implements Provider<SOAPMessage>
{
  ...
}

41.2.1.3. 페이로드 모드

페이로드 모드에서 공급자 구현은 메시지의 페이로드만 사용하여 작동합니다. 예를 들어 페이로드 모드에서 작동하는 공급자 구현은 SOAP 메시지의 본문에서만 작동합니다. 바인딩 계층은 바인딩 수준 래퍼 및 헤더를 처리합니다.

Apache CXF XML 바인딩, 페이로드 모드 및 메시지 모드와 같은 특수 래퍼를 사용하지 않는 바인딩으로 작업하는 경우 동일한 결과를 제공합니다.

공급자 구현에서 예 41.10. “공급자 구현에서 페이로드 모드를 사용하도록 지정” 와 같이 java.xml.ws.Service.Mode.PAYLOAD 값을 javax.xml.ws.ServiceMode 주석에 대한 값으로 제공하여 페이로드 모드를 사용하도록 지정하려면

예 41.10. 공급자 구현에서 페이로드 모드를 사용하도록 지정

@WebServiceProvider
@ServiceMode(value=Service.Mode.PAYLOAD)
public class stockQuoteProvider implements Provider<DOMSource>
{
  ...
}

@ServiceMode 주석 값을 지정하지 않으면 공급자 구현에서는 페이로드 모드를 사용합니다.