Весна-WS:как использовать WebserviceTemplate с предварительно созданным SOAP-конвертом

StackOverflow https://stackoverflow.com/questions/359620

Вопрос

Можете ли вы использовать Spring-WS WebserviceTemplate для вызова веб-сервиса и избежать создания SOAP-конверта?То есть сообщение уже содержит SOAP-конверт, и я не хочу, чтобы WebserviceTemplate обертывал его другим.:-)

Причина, по которой я этого хочу, заключается в том, что я хотел бы вызвать веб-сервис, который использует ws-security, и не хочу помещать данные ws-security в WebserviceTemplate, а просто хочу передать ему сообщение с предварительно сгенерированным ws-security. информация в SOAP-конверте.Я попробовал вызвать метод ОтправитьSourceAndReceiveToResult с источником уже содержит Soap-Envelope с материалами WS-Security, а шаблон веб-сервиса оборачивается вокруг другого Soap-Envelope и, таким образом, уничтожает сообщение.

Это было полезно?

Решение

Вы используете ws-security странным образом...Я предполагаю, что вы пытаетесь избежать зависимости ws-security, используя предварительно сгенерированные сообщения - для простого клиента это может иметь смысл, хотя это определенно не по правилам.

Вы можете настроить WebServiceTemplate для использования простого XML без SOAP, установив messageFactory в WebServiceTemplate для этого bean-компонента:

<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
    <property name="messageFactory" ref="poxMessageFactory" />
</bean>    

<bean id="poxMessageFactory" class="org.springframework.ws.pox.dom.DomPoxMessageFactory" />

Другие советы

Перехватчики могут пригодиться для того, что вы пытаетесь сделать.Взгляните на иерархию перехватчиков здесь: http://static.springframework.org/spring-ws/docs/1.0-m1/api/org/springframework/ws/EndpointInterceptor.htmlВы можете зарегистрировать EndpointInterceptor с помощью Spring-WS и манипулировать ответом по своему вкусу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top