JAX-WS 애플리케이션에 대한 웹 서비스 주소 지정 지원 사용
웹 서비스 주소 지정(WS-Addressing) 지원에서는 웹 서비스 주소를 지정하는 메커니즘을 제공하고 메시지에서 주소 지정 정보를 제공합니다. JAX-WS 애플리케이션의 경우 코드에서 어노테이션을 사용하거나 정책 세트를 구성하는 등 여러 방법으로 WS-Addressing 지원을 사용할 수 있습니다.
이 태스크 정보
이 태스크를 수행하여 WS-Addressing 지원을 서비스 제공자 또는 다른 상대방이 제공한 서비스의 클라이언트로 사용 가능하게 하십시오.
서비스 제공자의 경우 WS-Addressing 지원은 기본적으로 사용 가능하므로,
지원을 사용하기 위한 조치를 수행하지 않아도 됩니다. 그러나 WS-Addressing 정보가
필요한지 여부 및 생성된 WSDL 문서에 포함된 내용과 같은 서비스에 대한
기타 WS-Addressing 동작을 수정하기 위해 사용 가능 메커니즘을
사용할 수 있습니다.
- 애플리케이션에 정책 세트를 첨부하여 애플리케이션을 배치한 후 WS-Addressing 지원의 동작을 수정하십시오. 정책 세트 내에서 동기 또는 비동기 메시징 중 사용할 항목과 수신 메시지에 WS-Addressing 정보가 필요한지 여부를 지정하도록 WS-Addressing 정책 유형을 구성할 수 있습니다. 서버에서 정책 공유를 사용하고 클라이언트에서 제공자 정책을 적용하여 WS-Policy를 지원하는 기타 서버 및 클라이언트에 WS-Addressing 정책 구성을 전달할 수 있습니다. 이 메소드는 다른 메소드를 대체합니다.
- port-component 요소에서 배치 디스크립터 요소를 사용하십시오.
- 서비스 코드에서 Addressing 또는 SubmissionAddressing 어노테이션을 사용하여 서비스 배치 중 WS-Addressing 지원의 동작을 수정하십시오. 각 어노테이션에서 서버에서 WS-Addressing이 사용 가능한지 여부, 서비스에서 수신 메시지에 WS-Addressing 정보가 필요한지 여부, 서비스가 사용할 메시지 교환 패턴을 지정할 수 있습니다. 코드에 Addressing 어노테이션이 있으면 UsingAddressing 요소 및 WS-Policy 어설션을 서비스에 대해 생성된 WSDL 문서에 추가합니다.
- UsingAddressing 요소 또는 WS-Policy 어설션을 WSDL 문서에 추가하여 서비스 배치 중에 WS-Addressing 지원 동작을 수정하십시오. 생성할 JAX-WS 런타임 환경에 의존하는 대신, WSDL 문서를 제공하지 않고, 비JAX-WS 2.2 클라이언트에서 WSDL 문서를 사용하는 경우 해당 클라이언트가 WS-Policy 어설션을 처리하지 않으면 UsingAddressing 요소를 포함하려고 할 수도 있습니다.
서비스 클라이언트의 경우 WS-Addressing
지원은 기본적으로 사용 불가능합니다. 다음 메소드 중 하나를 사용하여
WS-Addressing 지원을 사용합니다. 다음 목록은 여러 메소드를 적용할 수
있기 때문에 내림차순으로 정렬합니다. 예를 들어, 배치 디스크립터 메소드는
어노테이션 또는 기능의 사용을 대체하지만 정책 세트 사용으로 대체됩니다.
- 클라이언트 아티팩트에 정책 세트를 첨부하고 다음 조치 중 하나를 수행하십시오.
- WS-Addressing이 필수인 정책에서 지정하십시오.
- 클라이언트 및 제공자 정책 모두를 적용하십시오. 이 상황에서 WS-Addressing 지원은 서비스 제공자에서 정책 공유가 사용 가능하고 제공자에 대한 정책 구성이 WS-Addressing이 필수임을 지정하는 경우에만 클라이언트에서 사용 가능합니다.
- 클라이언트 요청 컨텍스트에서 com.ibm.websphere.webservices.use.async.mep 특성을 설정하십시오.
- IBM® 독점 WS-Addressing SPI를 사용하여 메시지 요청 컨텍스트에 메시지 주소 지정 특성을 추가하십시오.
- port-component-ref 요소에서 배치 디스크립터 요소를 사용하십시오.
- 삽입된 웹 서비스 프록시 참조를 사용하는 경우 클라이언트 코드에서 WebServiceRef 어노테이션과 함께 주소 지정 어노테이션을 사용하십시오.
- 클라이언트 코드에서 주소 지정 기능을 사용하십시오. 이 메소드를 사용하여 설정된 특성은 서비스에 대한 WSDL 문서에 설정된 특성을 대체합니다.
- WSDL 문서에서 WS-Policy 어설션을 사용하여 WS-Addressing 지원을 지정하십시오. 클라이언트 애플리케이션 코드에 주소 지정 어노테이션을 추가하는 경우 생성된 WSDL 문서는 WS-Policy 어설션을 포함합니다.
- 서비스에 대한 WSDL 문서에서 UsingAddressing 요소를 지정하십시오. 서비스가 Addressing 어노테이션을 사용하고 코드에서 WSDL 문서를 생성하는 경우 UsingAddressing 요소는 이미 존재합니다.
다음 표에서는 WS-Addressing 지원의 동작을 요약합니다. 이 표를 사용하여 정책 구성과 관련되지 않은 클라이언트 설정에 대해 요청 메시지를 허용하는지 여부를 판별합니다.
이는 범위 지정된 열 표제를 포함하는 복합 테이블입니다.
여기에는 "클라이언트 설정"이라는 제목의 헤더 열이 있으며, 이는
클라이언트에서 WS-Addressing 지원이 사용 가능한지 여부와
구성된 메시징 스타일을 지정합니다. 두 번째 기본 열은 제공자에서 WS-Addressing이
선택사항인지, 아니면 필수인지 여부에 대한 두 개의 하위 열을 포함하는 정책 설정을
표시합니다. 이 하위 열 모두 메시징 스타일에 대한 세 개 하위 열로 더 구분됩니다(동기,
비동기 또는 둘 다). 세 번째 기본 열은 제공자에서 WS-Addressing이
선택사항인지, 아니면 필수인지 여부에 대한 두 개의 하위 열을 포함하는 WSDL 설정을
표시합니다.
클라이언트 설정 | 제공자 정책 설정 | 제공자 WSDL 설정(UsingAddressing required 속성) | ||||||
---|---|---|---|---|---|---|---|---|
WS-Addressing은 선택사항임 | WS-Addressing은 필수사항1 | |||||||
동기 및 비동기 | 동기만 | 비동기만 | 동기 및 비동기 | 동기만 | 비동기만 | false(WS-Addressing은 선택사항임) | true(WS-Addressing은 필수임1) | |
WS-Addressing 지원 사용 및 메시징 스타일 동기화 | 메시지 허용됨 | 메시지 허용됨 | 결함 | 메시지 허용됨 | 메시지 허용됨 | 결함 | 메시지 허용됨 | 메시지 허용됨 |
WS-Addressing 지원 사용 및 메시징 스타일 비동기화 | 메시지 허용됨 | 결함 | 메시지 허용됨 | 메시지 허용됨 | 결함 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 |
WS-Addressing 지원 사용 안함 및 메시징 스타일 동기화 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨2 | 결함 | 결함 | 결함 | 메시지 허용됨 | 결함 |
WS-Addressing 지원 사용 안함 및 메시징 스타일 비동기화3 | 결함 | 결함 | 결함 | 결함 | 결함 | 결함 | 결함 | 결함 |
참고:
- WS-Addressing이 필수인 경우 WS-Addressing 헤더가 없는 모든 요청이 거부됩니다.
- 메시징 스타일은 WS-Addressing 헤더가 요청에 있는 경우에만 강제 시행됩니다.
- 비동기 메시지는 WS-Addressing 헤더 없이 사용할 수 없습니다.
다음 표를 사용하여 클라이언트 및 제공자 모두 WS-Addressing 정책 구성을 포함하는 경우, 클라이언트에 제공자가 있고 클라이언트 정책이 적용된 경우, 서버에서 정책 공유를 사용하는 경우 요청 메시지를 허용할지 여부를 판별합니다.
이는 범위 지정된 열 표제를 포함하는 복합 테이블입니다.
여기에는 "클라이언트 설정"이라는 제목의 헤더 열이 있으며, 이는
클라이언트에서 WS-Addressing 지원이 선택사항인지, 아니면 필수인지 여부와
구성된 메시징 스타일을 지정합니다. 두 번째 기본 열은 제공자에서 WS-Addressing이
선택사항인지, 아니면 필수인지 여부에 대한 두 개의 하위 열을 포함하는 정책 설정을
표시합니다. 이 하위 열 모두 메시징 스타일에 대한 세 개 하위 열로 더 구분됩니다(동기 및
비동기, 동기만 또는 비동기만).
클라이언트 정책 설정 | 제공자 정책 설정 | |||||
---|---|---|---|---|---|---|
WS-Addressing은 선택사항임 | WS-Addressing은 필수입니다. | |||||
동기 및 비동기 | 동기만 | 비동기만 | 동기 및 비동기 | 동기만 | 비동기만 | |
WS-Addressing 선택사항 및 메시징 스타일 동기 및 비동기화 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 |
WS-Addressing 선택사항 및 메시징 스타일 동기만 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨1 | 메시지 허용됨 | 메시지 허용됨 | 결함 |
WS-Addressing 선택사항 및 메시징 스타일 비동기만2 | 결함 | 결함 | 결함 | 메시지 허용됨 | 결함 | 메시지 허용됨 |
WS-Addressing 필수 및 메시징 스타일 동기 및 비동기화 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 | 메시지 허용됨 |
WS-Addressing 필수 및 메시징 스타일 동기만 | 메시지 허용됨 | 메시지 허용됨 | 결함 | 메시지 허용됨 | 메시지 허용됨 | 결함 |
WS-Addressing 필수 및 메시징 스타일 비동기만 | 메시지 허용됨 | 결함 | 메시지 허용됨 | 메시지 허용됨 | 결함 | 메시지 허용됨 |
참고:
제공자 및 클라이언트 정책이 공유되지 않는 경우
다른 메소드를 통해 클라이언트에서 WS-Addressing을 사용 가능하게 하지 않는 한,
클라이언트는 WS-Addressing 헤더를 전송하지 않습니다. 이 상황에서
제공자 정책이 WS-Addressing을 필수로 지정한 경우 서버는 메시징 스타일에 상관없이
결함을 생성합니다. - 메시징 스타일은 WS-Addressing 헤더가 요청에 있는 경우에만 강제 시행됩니다.
- 비동기 메시지는 WS-Addressing 헤더 없이 사용할 수 없습니다.
프로시저
- 서비스 제공자 또는 클라이언트에서 정책 세트를 작성 또는 수정하여 WS-Addressing 지원 동작을 수정하려면 정책 세트를 사용하는 JAX-WS 애플리케이션에 대해 웹 서비스 주소 지정 지원 사용 주제를 참조하십시오.
- WebSphere® Application Server 클라이언트를 사용하여 WS-Addressing 지원을 사용하는 경우 클라이언트 요청 컨텍스트에서 com.ibm.websphere.webservices.use.async.mep 특성을 설정하십시오. 자세한 정보는 JAX-WS 웹 서비스 비동기 호출 주제를 참조하십시오.
- 서비스 또는 클라이언트 애플리케이션의 배치 디스크립터를 사용하여 WS-Addressing 지원 동작을 수정하려면 배치 디스크립터를 사용하는 JAX-WS 애플리케이션에 대해 웹 서비스 주소 지정 지원 사용 주제를 참조하십시오.
- 서비스 애플리케이션에서 주소 지정 어노테이션을 사용하여 프로그래밍 방식으로 WS-Addressing 지원 동작을 수정하려는 경우 또는 삽입된 웹 서비스 프록시 참조를 포함하는 클라이언트에서는 주소 지정 어노테이션을 사용하는 JAX-WS 애플리케이션에 대해 웹 서비스 주소 지정 지원 사용 주제를 참조하십시오.
- 주소 지정 기능 클래스의 인스턴스를 작성하여 클라이언트에서 프로그래밍 방식으로 WS-Addressing 지원을 사용하려면 주소 지정 기능을 사용하는 JAX-WS 애플리케이션에 대해 웹 서비스 주소 지정 지원 사용 주제를 참조하십시오.
- WSDL 파일에 WS-Policy 어설션을 추가하여 클라이언트 또는 서비스 애플리케이션의 배치 중에 WS-Addressing 지원의 동작을 수정하려면 WS-Policy를 사용하는 JAX-WS 애플리케이션에 대해 웹 서비스 주소 지정 지원 사용 주제를 참조하십시오.
결과
이제 WS-Addressing 특성은 SOAP 메시지 헤더에 포함되고, 메시지를 수신할 때 서버에서 처리됩니다.