Я пытаюсь реализовать службу, которая пытается войти в систему, отправив две строки «имя пользователя» и «пароль» с использованием SOAP.План состоит в том, чтобы просто получить ответ HTTP OK от провайдера.Входная часть wsdl выглядит следующим образом:
<message name="login">
<part name="username" type="xsd:string"/>
<part name="password" type="xsd:string"/>
</message>
Я настроил клиентскую сторону, как описано здесь https://codenotfound.com/spring-ws-example.html.
Итак, моя конфигурация выглядит так:
@Configuration
public class AppConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Bean
Jaxb2Marshaller jaxb2Marshaller() {
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
jaxb2Marshaller.setContextPath("http://example");
return jaxb2Marshaller;
}
@Bean
public WebServiceTemplate webServiceTemplate() {
WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
webServiceTemplate.setMarshaller(jaxb2Marshaller());
webServiceTemplate.setUnmarshaller(jaxb2Marshaller());
webServiceTemplate.setDefaultUri("http://example");
return webServiceTemplate;
}
}
И метод, в котором я пытаюсь отправить информацию для входа в систему, выглядит следующим образом:
@Autowired
private WebServiceTemplate webServiceTemplate;
@Override
public String login(String username, String password) throws Exception{
ObjectFactory factory = new ObjectFactory();
StringArray login = factory.createStringArray();
login.getItem().add(username);
login.getItem().add(password);
System.out.println("WebServiceTemplate is "+ webServiceTemplate);
String response = (String)webServiceTemplate.marshalSendAndReceive(login);
return response;
}
Тем не менее, я продолжаю получать сообщение об ошибке:
org.springframework.ws.soap.client.SoapFaultClientException: A required header representing a Message Addressing Property is not present
Я довольно новичок вSpring Boot и SOAP, так что я вроде как потерялся.