Отправка заголовка SOAP вместе с основным телом на сервер SOAP с помощью Spring Boot - PullRequest
0 голосов
/ 23 октября 2019

Как новичок в SOAP, я следую тому же учебнику, что и в Spring boot - Сервер не распознал значение HTTP Header SOAPAction . Учебное пособие можно найти в https://howtodoinjava.com/spring-boot/spring-soap-client-webservicetemplate/amp/

. В настоящее время я могу отправить полезную нагрузку SOAP с необходимым запросом. Сервер отвечает, что я не аутентифицировался.

Поэтому я пытаюсь отправить заголовок SOAP с деталями аутентификации вместе с этой полезной нагрузкой SOAP. См. Примеры ниже.

Во-первых, мне удалось запустить учебник. Запрос был отправлен с действием SOAP, а ответ получен.

Отправленный запрос [SaajSoapMessage {http://server.windeed.co.za/windeedengine/}CheckDeedsOfficeStatus]

Ответ заключается в том, что я не прошел проверку подлинности / отправил данные проверки подлинности правильно. Поэтому я создал объект аутентификации со всеми необходимыми деталями, чтобы выполнить маршалинг и сделать часть сообщения SOAP.

Я попробовал следующее:

ObjectFactory of = new ObjectFactory();
WinDeedCredentials cred = of.createWinDeedCredentials();

cred.setUsername("Test");
cred.setPassword("Test123");
cred.setCompany("COMPANY");
cred.setRequester("SOAP");
CheckDeedsOfficeStatus cdo = of.createCheckDeedsOfficeStatus();
CheckDeedsOfficeStatusResponse dr = (CheckDeedsOfficeStatusResponse)sc.callWebService(cdo,"http://server.windeed.co.za/windeedengine/CheckDeedsOfficeStatus");

Цель состоит в том, чтобы добиться этого:

POST /windeedengine3/client.asmx HTTP/1.1
Host: server.windeed.co.za
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://server.windeed.co.za/windeedengine/CheckDeedsOfficeStatus"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <WinDeedCredentials xmlns="http://server.windeed.co.za/windeedengine/">
      <Username>string</Username>
      <Password>string</Password>
      <Company>string</Company>
      <Requester>string</Requester>
    </WinDeedCredentials>
  </soap:Header>
  <soap:Body>
    <CheckDeedsOfficeStatus xmlns="http://server.windeed.co.za/windeedengine/" />
  </soap:Body>
</soap:Envelope>

В настоящее время с отсутствующими данными аутентификации мне говорят, что я не прошел аутентификацию правильно.

Ожидаемый результат - правильный ответ от сервера: онлайн или оффлайн. Какой правильный путь?

...