У меня была та же проблема, и я смог ее частично решить, используя предложение @ skaffman.
По сути, у меня был собственный EndpointInterceptor, который я хотел протестировать с реальными данными, чтобы я знал, что у меня все правильно.
Вам придется обновить зависимости spring-ws-test и другие spring-ws до версии 2.0 или выше. В итоге я использовал что-то отличное от PayloadMessageCreator.
final Source payload = new StreamSource(new StringReader(soapPayload));
SaajSoapMessageFactory saajSoapMessageFactory = new SaajSoapMessageFactory(MessageFactory.newInstance());
WebServiceMessage requestPayload = new SoapEnvelopeMessageCreator(payload).createMessage(saajSoapMessageFactory);
MessageContext messageContext = new DefaultMessageContext(requestPayload, saajSoapMessageFactory);
soapPayload
- строковое значение всего мыльного конверта.
Что-то похожее на это:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
...fill in your custom headers here
</soapenv:Header>
<soapenv:Body><someRequest>...</someRequest></soapenv:Body>
</soapenv:Envelope>
Вам, очевидно, потребуется заполнить полезную нагрузку вашего запроса, любые пространства имен, а также свои пользовательские заголовки.
Я установил для объекта конечной точки значение null, поскольку я ничего не делал с ним как частью моего перехватчика.