아웃바운드 메시지에서 SOAP 조치 설정의 동작 변경 확인

WebSphere Application Server V8에서는 JAX-WS 디스패치 클라이언트의 아웃바운드 메시지에서 SOAP 조치 설정을 결정하는 방법의 동작이 변경되었습니다. V8 이전 릴리스에서는 디스패치 클라이언트 애플리케이션이 SOAP 조치를 제공하지 않으면 JAX-WS 런타임 환경이 아웃바운드 메시지에서 SOAP 조치를 올바르게 전송하지 않았습니다. 그 대신 JAX-WS 런타임 환경은 SOAP 조치를 익명 조작으로 설정합니다. V8에서는 클라이언트 애플리케이션이 SOAP 조치를 제공하지 않으면 JAX-WS 런타임 환경이 발신 메시지를 구문 분석하여 호출할 조작을 결정하고 이 조작을 사용하여 SOAP 조치의 값을 적절하게 결정합니다.

이 규칙은 호출을 플래그 지정하여 다음과 같은 경우에 디스패치 클라이언트를 작성하게 합니다.

WebSphere Application Server Traditional 및 Liberty 는 클라이언트 애플리케이션이 JAX-WS와 함께 SOAP 조치를 제공하기 위한 것입니다. javax.xml.ws.BindingProvider 특성 SOAPACTION_USE_PROPERTY SOAPACTION_URI_PROPERTY . 제공된 SOAP 조치가 사용되며 아웃바운드 메시지의 구문 분석은 DISPATCH_CLIENT_OUTBOUND_RESOLUTION 특성.

이 예제에는 요청 컨텍스트에서의 SOAP 조치 설정에 대한 우수 사례 코드가 표시되어 있습니다. 만약 SOAPACTION_URI_PROPERTY 설정되지 않은 경우 또는 SOAPACTION_USE_PROPERTY 다음으로 설정됨 false , createDispatch() 메소드가 이 규칙에 의해 플래그 지정됩니다.

예제:

//Create a dispatch instance
< span class= "indent2"> < /span> 디스패치 < SOAPMessage> dispatch =
service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);

// Use Dispatch as BindingProvider
BindingProvider bp = (BindingProvider) dispatch;

// Configure RequestContext to send SOAPAction HTTP Header
Map < String, Object > rc = bp.getRequestContext();
rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, "hello");

이 구문 분석은 부담이 크므로 시스템 레벨(구문 분석을 항상 사용 안함으로 설정) 또는 JAX-WS 요청 메시지 컨텍스트(메시지당 구문 분석을 사용 안함으로 설정)의 WebSphere Application Server traditional에서 특성을 설정할 수 있습니다. 구문 분석을 사용하지 않으면 이전과 마찬가지로 아웃바운드 메시지의 SOAP 조치가 계속해서 익명 조작으로 설정됩니다. 사용 안함 특성은 상수로 정의됩니다. org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION 문자열 값 jaxws.dispatch.outbound.operation.resolution.enable . 특성이 설정되지 않은 경우에는 문자열로 해석됩니다. true 아웃바운드 조작 분석을 사용 가능하게 합니다. 특성을 다음으로 설정 false 아웃바운드 조작 분석을 사용 불가능하게 합니다.

추가 정보는 다음을 참조하십시오.