Я не понимаю, что я делаю не так. Я работаю на клиентском мыле с jaxb2 и следовал этому уроку https://howtodoinjava.com/spring-boot/spring-soap-client-webservicetemplate/. Он тестирует приложение с CommandLineRunner. Я адаптировал этот код для получения ошибки мыла.
Я попытался с помощью следующего кода в классе SpringBootApplication:
@Bean
CommandLineRunner lookup(SOAPConnector soapConnector) {
CreateAccountRequest request = new CreateAccountRequest();
request.setFirstname(test);
request.setEmail("test@test.com");
request.setLastname("test");
request.setPassword("test");
CreateAccountResponse response = null;
try {
response = (CreateAccountResponse) soapConnector.callWebService("http://localhost:8080/anonymous/createAccount", request);
}catch (SoapFaultClientException e){
e.printStackTrace();
System.out.println(e.getFaultStringOrReason());
}
};
Это работает, и я получаю хорошее сообщение об исключении:
org.springframework.ws.soap.client.SoapFaultClientException: This user already exists !
Но когда я помещаю этот код в класс контроллера (без CommandLineRunner), результат e.getFaultStringOrReason () отличается.
Я получаю:
org.springframework.ws.soap.client.SoapFaultClientException: Validation error
Что я должен сделать, чтобы получить подробное описание мыла, как в CommandLineRunner?