2008-12-11 4 views
3

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

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

ответ

3

Вы используете 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" /> 
+0

Danke, шляпа funktioniert! –

0

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

+0

Да, но моя точка: Я не хочу, чтобы манипулировать запрос и ответ на все! Как я могу избежать того, что Webservice-Template что-то делает? Моя проблема заключается в том, что он обертывает другой Soap-Envelope вокруг существующего. –

+0

Вы не можете этого сделать. Шаблон webservice является SOAP-ориентированным - предполагается, что вы хотите обернуть свой ответ в мыльный конверт. Но в вашем случае кажется, что у вас уже есть ответ в мыльном конверте. – neesh

Смежные вопросы