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로 지정하여 요청에서 헤더를 제외 할 수 있다고 주장합니다.