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

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

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

11.12.2008 14:56:13
2 ОТВЕТА
РЕШЕНИЕ

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

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

<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" />
3
6.01.2009 07:58:55
Данке, шляпа функционерть!
Hans-Peter Störr 19.01.2009 16:40:28

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

0
13.12.2008 03:17:56
Да, но моя точка зрения такова: я вообще не хочу манипулировать запросами и ответами! Как мне избежать того, что Webservice-Template что-нибудь с этим делает? Моя проблема в том, что он оборачивает другой мыльный конверт вокруг существующего.
Hans-Peter Störr 17.12.2008 11:24:42
Ты не можешь это делать. Шаблон веб-сервиса ориентирован на SOAP - он предполагает, что вы хотите обернуть свой ответ в мыльный конверт. Но в вашем случае кажется, что у вас уже есть ответ в мыльном конверте.
neesh 17.12.2008 16:42:58