IBM의 웹 서비스 주소 지정 SPI를 사용하여 메시지 주소 지정 특성 지정 및 확보

IBM의 웹 서비스 주소 지정(WS-Addressing) SPI(System Programming Interface)를 사용하면 JAX-WS BindingProvider 요청 컨텍스트, JAX-RPC Stub 또는 Call 오브젝트의 특성을 통해 WS-Addressing MAP(Message Addressing Properties)를 아웃바운드 클라이언트 메시지의 SOAP 헤더에 추가할 수 있습니다. 대상 엔드포인트가 메시지를 받으면 SPI는 엔드포인트가 메시지 컨텍스트의 특성을 통해 MAP를 획득할 수 있도록 합니다.

이 태스크 정보

JAX-WS 표준에 동등한 SPI가 없습니다. JAX-WS 엔드포인트 참조를 사용하는 클라이언트에서 메시지 주소 지정 특성을 설정하려는 경우 이 SPI에서 사용하기 전에 IBM 독점 클래스로 엔드포인트 참조를 변환해야 합니다.

WS-Addressing 지원을 사용하는 웹 서비스 개발자이거나 IBM 독점 WS-Addressing SPI를 사용하는 시스템 프로그래머인 경우에는 이 태스크를 완료하여 웹 서비스 메시지에서 결함이나 응답 엔드포인트 참조와 같은 메시지 주소 지정 특성을 지정할 수 있습니다.

설정하거나 검색할 수 있는 특성이 특성 인스턴스의 Java™ 유형과 함께 IBM 독점 WS-Addressing(Web Services Addressing) SPI에 설명되어 있습니다. 대부분의 특성은 com.ibm.websphere.wsaddressing.EndpointReference 유형이고, 예를 들어, 대상, 응답 또는 결함 엔드포인트 참조가 이에 해당합니다. 관계 특성은 com.ibm.wsspi.wsaddressing.Relationship 클래스의 인스턴스가 들어 있는 java.util.Set 오브젝트입니다. 메시지 간에 연관을 지정하려면 관계를 사용하십시오. 예를 들어, 응답 메시지에서 응답하는 메시지의 ID를 지정하고자 할 수도 있습니다. 조치 특성은 대상 엔드포인트 내에서 특정 메소드나 조작을 식별하는 AttributedURI 오브젝트입니다.
주의: 메시지가 WS-Addressing을 준수하게 하려면 대상 엔드포인트 참조 및 조치 특성이 필요합니다.

프로시저

  1. 웹 서비스 주소 지정을 사용하는 JAX-RPC 웹 서비스 애플리케이션 작성에 설명된 대로 클라이언트에서 서비스로부터 엔드포인트 참조를 확보하여 이를 BindingProvider 오브젝트의 요청 컨텍스트, Stub 또는 Call 오브젝트와 연관시키십시오.
  2. 필수 특성의 인스턴스를 작성하십시오. 예를 들어, 대상 서비스가 응답을 전송하는 엔드포인트 참조를 지정하려면 WSADDRESSING_REPLYTO_EPR 특성으로 사용할 com.ibm.websphere.wsaddressing.EndpointReference 클래스의 인스턴스를 작성하십시오.
  3. 이를 BindingProvider 오브젝트의 요청 컨텍스트, Stub 또는 Call 오브젝트와 연관시켜 필수 특성을 설정하십시오. Stub 또는 Call 오브젝트를 사용 중인 경우 setProperty(String property_name, Object value) 메소드를 사용하십시오. 첫 번째 단계에 필요한 엔드포인트 참조와는 달리, 이들 엔드포인트 참조는 SOAP 메시지의 본문 대신 헤더에 전달되므로 다른 유형으로 변환될 필요가 없습니다. 다음 예제는 BindingProvider 오브젝트의 요청 컨텍스트에서 대상 엔드포인트 참조 및 응답 엔드포인트 참조를 설정합니다.
    import javax.xml.ws.BindingProvider;
    ...
     javax.xml.ws.Service jaxwsServiceObject=...;
     Printer myPrinterProxy = jaxwsServiceObject.getPort(portName, Printer.class);
     
     javax.xml.ws.BindingProvider myBindingProvider = (javax.xml.ws.BindingProvider)myPrinterProxy;
    
     // Retrieve the request context for the BindingProvider object
     Map myMap = myBindingProvider.getRequestContext();
    
     // Associate the endpoint reference for the web service. This property is required for the message 
     // to be WS-Addressing compliant.
      myMap.put(WSADDRESSING_DESTINATION_EPR, destinationEpr);
    
     // Associate the endpoint reference that represents the reply to the request context
     myMap.put(WSADDRESSING_REPLYTO_EPR, replyToEpr);
    BindingProvider, Stub 또는 Call 오브젝트에서 호출이 발생하면 제품은 적합한 MAP을 메시지 헤더에 추가합니다.
  4. 서버에서 현재 스레드에 있는 javax.xml.ws.WebServiceContext 또는 javax.xml.rpc.handler.MessageContext 오브젝트를 통해 인바운드 메시지에서 MAP를 검색하십시오. WebSphere® Application Server가 메시지를 받으면 이는 MAP 정보를 스레드에 있는 메시지 컨텍스트에 입력하여 서비스가 이를 사용할 수 있도록 합니다. 예를 들어, 엔드포인트 엔터프라이즈 Bean의 세션 컨텍스트를 사용하여 메시지 컨텍스트를 검색할 수 있습니다. 메시지 컨텍스트에 대한 보다 자세한 정보는 JSR-109 표준을 참조하십시오. 다음 예제는 웹 서비스 컨텍스트를 사용하여 응답 엔드포인트 참조를 검색합니다.
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.WebServiceContext; 
    ...
    
      // Obtain the message context from the WebService context 
      private WebServiceContext wsContext;
      MessageContext context = wsContext.getMessageContext();
    
      // Retrieve the reply endpoint reference
      replyToEpr = context.getProperty(WSADDRESSING_INBOUND_REPLYTO_EPR);

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_wsa_maps
파일 이름:twbs_wsa_maps.html