IBM 독점 WS-Addressing(Web Services Addressing) SPI
IBM 독점 WS-Addressing(Web Services Addressing) SPI(System Programming Interfaces)는 IBM 독점 WS-Addressing API(Application Programming Interfaces)를 확장하여 엔드포인트 참조 및 다른 WS-Addressing 아티팩트의 컨텐츠에 대해 작성 및 추론하고, 웹 서비스 메시지에서 WS-Addressing MAP(Message-Addressing Properties)를 검색하거나 설정할 수 있습니다.
표준 JAX-WS API 클래스를 이 독점 SPI와 사용할 수 없습니다. 그러나 표준 JAX-WS API 클래스를 사용하여 작성된 엔드포인트 참조를 com.ibm.websphere.wsaddressing.jaxws21.EndpointReferenceConverter 클래스를 사용하여 독점 com.ibm.websphere.wsaddressing.EndpointReference 클래스의 인스턴스로 변환할 수 있습니다. 그러면 독점 SPI로 변환된 이 엔드포인트 참조를 사용할 수 있습니다.
이 주제의 프로그래밍 인터페이스는 IBM WS-Addressing SPI 문서에서 자세히 설명됩니다.
엔드포인트 참조의 컨텐츠에 대한 작성, 정제 및 추론

SPI는 독점 WS-Addressing com.ibm.websphere.wsaddressing.EndpointReference API를 확장하여 com.ibm.wsspi.wsaddressing.EndpointReference 인터페이스를 통해 여러 추가 메소드를 제공합니다. com.ibm.websphere.wsaddressing.EndpointReference의 인스턴스를 com.ibm.wsspi.wsaddressing.EndpointReference에 캐스트하여 이 추가 기능에 액세스할 수 있습니다.
마찬가지로, SPI com.ibm.wsspi.wsaddressing.EndpointReferenceManager는 com.ibm.websphere.wsaddressing.EndpointReferenceManager API에 제공된 기능 세트를 확장합니다.
- 엔드포인트 참조 작성
- createEndpointReference(URI) 조작 또는 EndpointReferenceManager.createEndpointReference(AttributedURI) 조작을 사용하여 EndpointReference 오브젝트가 표시할 엔드포인트의 URI를 지정하여 EndpointReference 오브젝트를 작성합니다. EndpointReference 인스턴스에 대한 URI를 자동으로 생성하지 않는다는 점에서 이 메소드는 API 레벨에서 제공된 createEndpointReference 메소드와 다릅니다. 배치 제한사항이 없는 테스트 환경의 예와 같이 엔드포인트의 URI가 안정적이면 이 메소드를 사용할 수 있습니다.
- XML 및 엔드포인트 참조의 Java™ 표시 사이의 맵
- EndpointReference.getSOAPElement 조작을 사용하여 해당 SOAP 요소 인스턴스에 EndpointReference 인터페이스의 인스턴스를 직렬화할 수 있습니다. 반대로, EndpointReference.createEndpointReference(SOAPElement) 조작을 사용하여 EndpointReferenceType의 SOAP 요소를 해당 EndpointReference Java 표시로 직렬화 해제할 수 있습니다. EndpointReference 인스턴스를 포함하는 유형에 사용자 바인더를 작성하는 경우 이 직렬화 및 직렬화 해제 인터페이스가 유용할 수 있습니다.
- 더 복잡한 참조 매개변수 유형 사용
- API 레벨에서 제공되는 독점 인터페이스는 유형 xsd:string의 매개변수를 참조로 제한되어
단순한 프로그래밍 모델에만 허용됩니다. SPI는 이 지원을 확장하여
유형 <xsd:any>의 참조 매개변수를 허용합니다. EndpointReference 인터페이스는
SOAP 요소로 참조 매개변수를 가져오고 설정하기 위한 메커니즘을 제공합니다. 또한, EndpointReferenceManager 클래스는
getSOAPElementReferenceParameterFromMessageContext 조작을 제공하며,
수신 엔드포인트가 수신 메시지에서 유형 문자열이 아닌 참조 매개변수를 얻을 수 있습니다.참고: 참조 매개변수를 포함하는 EndpointReference 오브젝트로 서비스를 호출하면, 모든 부분(네임스페이스, localpart 및 접두부)이 표시된 완전한 QName 오브젝트를 사용하여 참조 매개변수를 작성해야 합니다. QName 오브젝트가 완전하지 않으면 서비스 호출이 실패합니다.
- 엔드포인트 참조 컨텐츠 설정 및 추론
- EndpointReference 인터페이스는 WS-Addressing 주소와 메타데이터 특성과 같은 EndpointReference 인스턴스의 컨텐츠에 대해 설정하고 추론하는 조작을 제공합니다. 추가 인터페이스는 엔드포인트 참조, Metadata, AttributedURI 및 ServiceName을 구성하는 아티팩트를 표시하도록 제공됩니다. 독점 WSAddressingFactory 클래스에서 제공된 조작을 사용하여 이 인터페이스의 인스턴스를 작성합니다.
- 지원된 네임스페이스 얻기 및 변경
- 이 제품에서 WS-Addressing 지원은 다중 네임스페이스를 지원합니다. 독점 EndpointReference 인터페이스에서 제공된 setNamespace 및 getNamespace 조작으로 특정 EndpointReference 오브젝트와 연관된 네임스페이스를 변경하고 얻을 수 있습니다. SOAP 요소에 대한 직렬화는 EndpointReference 오브젝트의 네임스페이스에 따라 다릅니다. 기본적으로 대상 엔드포인트 참조의 네임스페이스(JAX-WS BindingProvider 오브젝트 요청 컨텍스트 또는 JAX-RPC 스텁이나 호출 오브젝트에 대한 com.ibm.websphere.wsaddressing.WSAConstants.WSADDRESSING_DESTINATION_EPR 특성으로 설정된 엔드포인트 참조)는 메시지의 message-addressing 특성의 네임스페이스를 정의합니다.
WS-Addressing message-addressing 특성 설정 및 검색

아웃바운드 메시지에서 WS-Addressing message-addressing 특성 설정:
특성 이름(유형 문자열의) | 특성 값의 Java 유형 | 추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 | 기본값 |
---|---|---|---|
WSADDRESSING_DESTINATION_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [destination] URI |
설정되지 않음 이 특성 이름은 API에서 얻습니다. |
WSADDRESSING_FROM_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [source endpoint] | 설정되지 않음 |
WSADDRESSING_REPLYTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [reply endpoint] | 메시지가 응답이 없는 단방향 메시지인 경우 'none' 또는 설정되지 않습니다. JAX-WS 애플리케이션에서 양방향 비동기 메시지의 경우 이 특성은 자동으로 생성됩니다. 이 상황에서 이 특성을 설정하려고 하는 경우, javax.xml.ws.WebServiceException 예외가 발생합니다. 양방향 동기 메시지의 경우 엔드포인트 참조 주소가 익명 URI인 경우에만 이 특성을 설정할 수 있습니다. 주소가 익명 URI가 아닌 경우, javax.xml.ws.WebServiceException 예외가 처리됩니다. |
WSADDRESSING_FAULTTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [fault endpoint] | 설정되지 않음 JAX-WS 애플리케이션에서 양방향 비동기 메시지에 대해 이 특성을 설정하려는 경우 javax.xml.ws.WebServiceException 예외가 처리됩니다. 양방향 동기 메시지의 경우 엔드포인트 참조 주소가 익명 URI인 경우에만 이 특성을 설정할 수 있습니다. 주소가 동기 URI가 아닌 경우, javax.xml.ws.WebServiceException 예외가 처리됩니다. |
WSADDRESSING_RELATIONSHIP_SET | com.ibm.wsspi.wsaddressing.Relationship의 인스턴스를 포함한 java.util.Set | [relationship] | 설정되지 않음 |
WSADDRESSING_MESSAGE_ID | com.ibm.wsspi.wsaddressing.AttributedURI | [message id] | 생성되어 고유 값으로 설정됨 |
WSADDRESSING_ACTION | com.ibm.wsspi.wsaddressing.AttributedURI | [action] | WS-Addressing 스펙에 따라 생성되고 설정됨 |
WSADDRESSING_OUTBOUND_NAMESPACE | 문자열 | 없음 | 지정된 경우 WSADDRESSING_DESTINATION_EPR 특성의 WS-Addressing 네임스페이스, 지정되지 않은 경우 기본 네임스페이스 |
인바운드 메시지에서 WS-Addressing message-addressing 특성 검색:
메시지 컨텍스트 특성 이름(유형 문자열의) | 특성 값의 Java 유형 | 추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 |
---|---|---|
WSADDRESSING_INBOUND_TO | com.ibm.wsspi.wsaddressing.AttributedURI | [destination] |
특정 특성이 없습니다. EndpointReferenceManager.getReferenceParameter(QName name) 메소드를 사용하여 연관된 MAP을 얻습니다. | 임의의 유형 | [reference parameters]* |
WSADDRESSING_INBOUND_FROM_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [source endpoint] |
WSADDRESSING_INBOUND_REPLYTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [reply endpoint] |
WSADDRESSING_INBOUND_FAULTTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [fault endpoint] |
WSADDRESSING_INBOUND_RELATIONSHIP | com.ibm.wsspi.wsaddressing.Relationship의 인스턴스를 포함한 java.util.Set | [relationship] |
WSADDRESSING_INBOUND_MESSAGE_ID | com.ibm.wsspi.wsaddressing.AttributedURI | [message id] |
WSADDRESSING_INBOUND_ACTION | com.ibm.wsspi.wsaddressing.AttributedURI | [action] |
WSADDRESSING_INBOUND_NAMESPACE | 문자열 | 수신 메시지의 WS-Addressing 네임스페이스 |