2011-11-23 2 views
2

jax-ws 생성 코드를 사용하여 클라이언트를 생성합니다. 바인딩 요소 내의과 같이 헤더 요소의 수를 지정하는 데 사용되는 WSDL을, : 주위WSDL에서 생성 된 클라이언트가 선택적 헤더 요소를 제외하는 요청을 생성 할 수 있습니까?

<wsdl:operation name="operation"> 
    <wsoap12:operation soapActionRequired="false" style="document"/> 
    <wsdl:input> 
     <wsoap12:header message="tns:InMsg" part="header1" use="literal"/> 
     <wsoap12:header message="tns:InMsg" part="header2" use="literal"/> 
     <wsoap12:header message="tns:InMsg" part="header3" use="literal"/> 
     <wsoap12:header message="tns:InMsg" part="header4" use="literal"/>  
     <wsoap12:header message="tns:InMsg" part="header5" use="literal"/> 
     <wsoap12:body parts="request" use="literal"/> 
    </wsdl:input> 
    <wsdl:output> 
     <wsoap12:header message="tns:OutMsg" part="header1" use="literal"/> 
      <wsoap12:header message="tns:OutMsg" part="header2" use="literal"/> 
      <wsoap12:body parts="response" use="literal"/> 
    </wsdl:output> 
    <wsdl:fault name="standardError"> 
     <wsoap12:fault name="standardError" use="literal"/> 
    </wsdl:fault> 
</wsdl:operation> 

내 질문 센터, 인수, header5을 위해서. 내가 일하고있는 사양에 따르면, 이것은 선택적 값입니다. 따라서 JAX-WS를 사용하여 클라이언트를 생성하고 header5 값을 요청에 추가하기위한 작업 매개 변수로 null (지정되지 않은 값을 시뮬레이트하기 위해) 또는 유효한 헤더 값을 전달해야합니다. 그러면 하위 요소가없는 <header5> 요소가 생성됩니다. 그때 내가 마주 치게되는 문제는 소비하는 서비스가 헤더 요소에 대해 일종의 유효성 검사를 수행하는 것으로 보이며 일반적으로 몇 가지 다른 하위 요소가 포함되어있는 것처럼 형식이 잘못되었다고 판단하는 것입니다.

JAX-WS를 사용하여 SOAP 요청에서 헤더 요소 altogther를 제외하여이 선택적 헤더 요구 사항을 본질적으로 충족시키는 방법이 있습니까? 동료가 WSDL에 정의 된 계약을 위반하여 서비스가 오류를 반환하는지 여부에 관해서는 약간의 논란이있는 것으로 보입니다. .Net 클라이언트는 헤더를 null로 지정하여 요청에서 헤더를 제외 할 수 있다고 주장합니다.

답변