Как добавить Custom Header в SOAP клиент, используя Spring boot или core java? - PullRequest
0 голосов
/ 03 мая 2020

нужна помощь !!! Как добавить пользовательский заголовок в SOAP клиент, используя Spring boot или core java? Я новичок, чтобы потреблять SOAP. Без заголовка я могу использовать другой API. Теперь нужно добавить заголовок, но нельзя добавить значение заголовка. Я попробовал core java, используя httpclient4.5.12, но не повезло. Получение исключения:

<soapenv:Text xml:lang="en-US">javax.xml.stream.XMLStreamException: 
Element type "env:Envelope" must 
be followed by either attribute specifications, "&gt;" or "/&gt;".</soapenv:Text>

А также пробный проект Spring Boot ref. https://spring.io/guides/gs/consuming-web-service/

Там получается:

org.springframework.ws.soap.client.SoapFaultClientException: A required header representing a Message 
Addressing Property is not present

Запрос. xml

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" 
xmlns:fram="http://ventara.com/Framework/" 
xmlns:ws="http://www.w3.org/2005/09/ws-i18n" 
xmlns:van="http://ventara.com/van/">
   <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
      <fram:role wsa:IsReferenceParameter="true">1234</fram:role>
      <fram:user wsa:IsReferenceParameter="true">abcd</fram:user>
      <ws:international>
         <ws:locale>en_US</ws:locale>
      </ws:international>
      <wsa:MessageID>urn:uuid:55BB586CF4ED42AA181361474932125</wsa:MessageID>
   </soap:Header>
   <soap:Body>
      <van:getVentaraRequest>
         <returnReference>true</returnReference>
         <requisitions>
            <requisition>
               <id>4521</id>
            </requisition>
         </requisitions>
      </van:getVentaraRequest>
   </soap:Body>
</soap:Envelope>

Примечание: когда я звоню из SOAPUI, его работает нормально, проблем нет.

...