웹 서비스 주소 지정 메시지 교환 패턴
W3C(World Wide Web Consortium) 웹 서비스 주소 지정(WS-Addressing) 스펙은 WSDL 1.0에 정의된 메시지 교환 패턴(MEP)에 사용할 WS-Addressing 코어 특성을 명시적으로 정의합니다. 이 주제는 각 패턴의 필수 WS-Addressing 특성을 설명하면서 MEP를 요약합니다.
단방향 MEP
<operation name="myOperation">
<input message="tns:myInputMessage"/>
</operation>
추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 | 단방향 입력 메시지에 대한 설명 |
---|---|
[action] | 사용 중인 WS-Addressing 스펙의 버전에 맞게 생성된 WS-Addressing 조치. |
[reply endpoint] | 이 입력 메시지에 대한 예상되는 응답이 없음을 나타내는 WS-Addressing 응답 엔드포인트. MAP의 값은 사용 중인 WS-Addressing 스펙의 버전에 따라 다릅니다. |
[message id] | 고유하게 생성된 메시지 ID입니다. 스펙에 지정된 사항은 아니지만 WebSphere® Application Server 런타임은 이 특성을 자동으로 설정합니다. |
이 메시지 교환의 WSDL 조작이 응답을 지정하지 않더라도 관련된 메시지가 기타 메시지 교환의 일부로 전송될 수 있습니다. 특히, 애플리케이션은 WS-Addressing 응답 엔드포인트 또는 결함 엔드포인트 Map를 사용하여 관련된 메시지를 전송해야 하는 단방향 메시지의 대상을 표시할 수 있습니다. 응답 엔드포인트 또는 결함 엔드포인트를 전파하려면 기본값을 대체하도록 해당 특성을 IBM의 웹 서비스 주소 지정 SPI를 사용하여 메시지 주소 지정 특성 지정 및 확보에 설명된 대로 JAX-RPC Stub 또는 Call 오브젝트와 연관시키거나 JAX-WS BindingProvider 오브젝트의 요청 컨텍스트와 연관시키십시오.
양방향 요청-응답
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<output message="tns:myOutputMessage"/>
<fault="tns:myFaultMessage"/>
</operation>
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<output message="tns:myOutputMessage"/>
</operation>
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<fault="tns:myFaultMessage"/>
</operation>
추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 | 요청-응답 조작의 입력 메시지에 대한 설명 |
---|---|
[action] | 사용 중인 WS-Addressing 스펙의 버전에 맞게 생성된 WS-Addressing 조치. |
[message id] | 고유하게 생성된 메시지 ID. |
추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 | 요청-응답 조작의 입력 메시지에 대한 설명 |
---|---|
[action] | 사용 중인 WS-Addressing 스펙의 버전에 맞게 생성된 WS-Addressing 조치. |
[relationship] | 요청 메시지에서 전달된 메시지 ID에 대한 응답 관계를 포함하는 관계 세트. |
[message id] | 고유하게 생성된 메시지 ID. 스펙에 지정된 사항은 아니지만 애플리케이션 서버 런타임은 이 특성을 자동으로 설정합니다. |
동기식 요청-응답

JAX-WS 동기 호출의 경우, 응답 엔드포인트 또는 결함 엔드포인트를 설정하면 설정한 엔드포인트 참조는 익명의 URI를 사용해야 합니다. 엔드포인트 참조가 익명의 URI를 사용하지 않으면 javax.xml.ws.WebServiceException 예외가 처리됩니다. 엔드포인트 참조가 익명의 URI를 사용하는 경우에도 엔드포인트 참조 내의 참조 매개변수를 사용하여 응답 또는 결함 엔드포인트를 대상으로 정할 수 있습니다.
- WS-Security를 사용으로 설정하지 않았거나 어셈블리 도구를 사용하여 SOAP 메시지의 ReplyTo 및 FaultTo 요소에 서명이 있어야 함을 지정하지 않았습니다. 이러한 상황에서는 JAX-WS 엔드포인트가 써드파티에 메시지를 전송하는 데 사용되어 잠재적으로 서비스 거부 공격을 받을 수 있습니다. 이러한 공격을 방지하려면 동기 메시지 교환 패턴을 지정하고 클라이언트가 이 요구사항을 인식하도록 WS-Policy를 사용으로 설정하십시오.
- JAX-WS 클라이언트가 NAT 디바이스를 통해 통신 중입니다. SOAP 메시지의 ReplyTo 또는 FaultTo 요소에서 URI를 이러한 디바이스를 통해 라우트할 수 없습니다. 이러한 상황에서 클라이언트는 WS-Addressing 스펙이 정의한 익명 URI 및 동기 메시지 교환 패턴을 사용해야 합니다. 서버가 WS-Policy를 사용하여 ReplyTo 요소에서 익명이 아닌 URI를 요청하는 경우에도 클라이언트가 이러한 요구사항을 준수하도록 하려면 클라이언트에 동기 메시지 교환 패턴을 지정하십시오.
비동기 요청-응답
JAX-RPC 1.0 프로그래밍 모델은 양방향 요청-응답 조작에 대한 비동기 응답이나 결함을 허용하지 않습니다.

![[Windows]](../images/windows.gif)
- WS-Addressing 정책 세트를 적용 및 구성. "WS-Addressing 정책 구성" 주제를 참조하십시오.
- 클라이언트 요청 컨텍스트에서 com.ibm.websphere.webservices.use.async.mep 특성을 설정. "비동기식으로 JAX-WS 웹 서비스 호출" 주제를 참조하십시오.
- 배치 디스크립터 요소, @Addressing 어노테이션, 주소 지정 기능을 사용하거나 WSDL 문서에 WS-Policy 어설션 추가. "JAX-WS 애플리케이션에 대한 웹 서비스 주소 지정 지원 사용" 주제 및 하위 주제를 참조하십시오.
- WS-Policy 공유가 사용 가능합니다.
- WS-Policy
공유가 사용 가능하지 않지만,
- 패키지된 WSDL(HTTP GET 요청으로 검색됨)에 관련 정책 정보가 포함되어 있습니다.
- @Addressing 어노테이션을 코드에서 사용했습니다. 이 경우 서버 런타임에서 WS-Policy 첨부 파일을 포함하는 WSDL 문서를 생성합니다.