Как новичок в 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>
В настоящее время с отсутствующими данными аутентификации мне говорят, что я не прошел аутентификацию правильно.
Ожидаемый результат - правильный ответ от сервера: онлайн или оффлайн. Какой правильный путь?