JAXWS - как обрабатывать заголовок в ответ на ошибку - PullRequest
0 голосов
/ 01 октября 2018

Я написал сервер для связи веб-службы SAOP, который возвращает этот ответ моему клиенту:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header>
      <ns3:responseInfo xmlns:ns3="http:/xxxxxxxxxxxxxxxx/wsdl/message/">
         <externalSessionId>?</externalSessionId>
         <externalReferenceNumber>?</externalReferenceNumber>
         <referenceNumber>12hslkhmku</referenceNumber>
         <executionTime>PT0.066S</executionTime>
      </ns3:responseInfo>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>SOAP-ENV:Client</faultcode>
         <faultstring>EchoFault</faultstring>
         <detail>
            <echoFault xmlns="http://xxxxxxxxxxxxxxxx/wsdl/message/"/>
         </detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

вот мой клиентский порт:

@WebMethod(operationName = "Echo", action = "http://xxxxxxxxxxx/soap/service/Echo")
    @WebResult(name = "echoResponse", targetNamespace = "http://xxxxxxxxxxx/wsdl/message/", partName = "echoResponse")
    public EchoResponse echo(
        @WebParam(name = "echoRequest", targetNamespace = "http://xxxxxxxxxxx/wsdl/message/", partName = "echoRequest")
        EchoRequest echoRequest,
        @WebParam(name = "requestInfo", targetNamespace = "http://xxxxxxxxxxx/wsdl/message/", header = true, partName = "requestInfoPart")
        RequestInfo requestInfoPart,
        @WebParam(name = "responseInfo", targetNamespace = "http://xxxxxxxxxxx/wsdl/message/", header = true, mode = WebParam.Mode.OUT, partName = "responseInfoPart")
        Holder<ResponseInfo> responseInfoPart)
        throws EchoFault_Exception
    ;

В этом случае возвращается responseInfoPartкак ноль.Если ответ не является ошибкой, то responseInfoPart заполняется.Можете ли вы помочь мне понять, почему в случае сбоя заголовок не отображается?

...