WSIFOperation - 컨텍스트
WSDL(Web Services Description Language)이 컨텍스트를 정의하지 않지만, 많은 WSIF(Web Services Invocation Framework)의 사용은 해당 서비스를 호출 중인 포트로 컨텍스트를 전달하는 기능이 필요합니다.
예를 들어, HTTP 포트를 통한 SOAP에는 HTTP 사용자 이름과 비밀번호가 필요할 수 있습니다. 이 정보는 호출에 한정되어 있지만 서비스의 매개변수는 아닙니다. 일반적으로 컨텍스트는 이름-값 쌍의 세트로 정의됩니다. 그러나, 웹 서비스가 XML 스키마 유형을 사용하여 데이터의 유형을 정의하는 경향이 있으므로 WSIF는 WSIFMessage 클래스가 사용하는 동일한 표시, 즉 각각이 XML 스키마 유형의 인스턴스와 동일한 이름 지정된 파트의 세트를 사용하여 컨텍스트의 이름-값 쌍을 나타냅니다.
WSIFOperation 인터페이스 setContext 및 getContext 메소드를 사용하여 컨텍스트 정보를 바인딩에 전달할 수 있습니다. 포트 구현은 이 컨텍스트를 사용할 수 있습니다(예를 들어, SOAP 헤더를 업데이트하기 위해). 포트가 컨텍스트를 사용할 수 있는 방법의 정의는 없습니다.
setContext 및 getContext 메소드의 매개변수는 WSIFMessage 인터페이스이며, 이 인터페이스는 컨텍스트 정보를 정의하는 이름 지정된 파트를 갖습니다. WSIFConstants 클래스는 컨텍스트 WSIFMessage 인터페이스에 설정될 수 있는 파트 이름의 상수를 정의합니다.
다음 코드 단편은 HTTP 기본 인증에 사용할 사용자 이름 및 비밀번호를 설정하는 방법을 보여줍니다.
// set a basic authentication header
WSIFMessage headers = new WSIFDefaultMessage();
headers.setObjectPart( WSIFConstants.CONTEXT_HTTP_USER, "user name" );
headers.setObjectPart( WSIFConstants.CONTEXT_HTTP_PSWD, "password" );
operation.setContext( headers );
WSIFOperation 인터페이스는 지원하지 않는 컨텍스트 파트는 무시합니다. 예를 들어, 이전 코드는 WSIF Java™ 제공자가 무시합니다.
WSIFConstants 클래스에는 컨텍스트 파트 이름에 사용할 수 있는 다음과 같은 상수가 들어 있습니다.
- CONTEXT_HTTP_USER
- CONTEXT_HTTP_PSWD
- CONTEXT_SOAP_HEADERS
HTTP 헤더값은 String 유형을 갖고 SOAP 헤더값은 org.w3c.dom.Element 유형의 항목을 포함해야 하는 java.util.List 유형을 갖습니다.