#spring-boot #web-services #soap #soap-client #spring-ws
Вопрос:
Я пытаюсь использовать мыло WS в SpringBoot. Я сгенерировал необходимые классы клиентов и запросов/ответов через WSDL.
Клиент выглядит так:
public class SomeClient extends WebServiceGatewaySupport { public SomeResponse loadSomething(String param) { SomeRequest request = new SomeRequest(); request.setParam(param); SomeResponse response = (SomeResponse) getWebServiceTemplate() .marshalSendAndReceive(request, message -gt; ((SoapMessage) message).setSoapAction("action/loadSomething")); return response;
И компонент в моем файле конфигурации выглядит так:
@Bean public SomeClient someClient(Jaxb2Marshaller marshaller) { SomeClient client = new SomeClient(); WebServiceTemplate template = client.getWebServiceTemplate(); template.setMessageSender(new WebServiceMessageSenderWithAuth()); client.setDefaultUri( "URL to service"); client.setMarshaller(marshaller); client.setUnmarshaller(marshaller); return client; }
Затем я написал тест, и конечная точка успешно вызывается, но я получаю следующую ошибку:
[ISC.0076.9220] Кодер документа/литерала: ошибка декодирования; недопустимые значения входных параметров
Но класс запроса и его поля были сгенерированы автоматически…как значения параметров inout могут быть незаконными? На что конкретно может намекать эта ошибка? Если я отправлю пример запроса через SOAPUI, он будет работать безупречно.