2008-12-11 40 views
3

你可以使用一個Spring-WS WebserviceTemplate用於調用web服務,並避免它產生一個SOAP信封?也就是說,該消息已經包含SOAP信封,我不希望這樣的WebserviceTemplate環繞另一個了。 :-)春-WS:如何使用WebserviceTemplate與預先生成的SOAP信封

我想要這樣做的原因是我想調用一個使用ws-security的web服務,並且不想將ws-security的東西放到WebserviceTemplate中,但只是想爲它提供一條消息並在SOAP-envelope中預先生成了ws-security信息。我試圖調用該方法sendSourceAndReceiveToResult與源已經包含了一個SOAP信封與WS-Security的東西和周圍其他肥皂,信封web服務模板包裹,從而破壞了該消息。

回答

3

您正在使用的WS-Security在陌生的路上......我想,你試圖通過使用預先生成的消息,以避免WS-Security的扶養 - 簡單的客戶端可能是有意義的,但它絕對不是由-THE書。

您可以通過設置WebServiceTemplate到的MessageFactory這個bean配置WebServiceTemplate使用純XML沒有SOAP:

<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

攔截器可以派上用場的那種你正在嘗試做的事情。看看攔截層次這裏:http://static.springframework.org/spring-ws/docs/1.0-m1/api/org/springframework/ws/EndpointInterceptor.html 你可以註冊彈簧-WS的EndpointInterceptor和操縱自己的喜好的響應。

+0

是的,但我的觀點是:我不想處理請求和響應在所有!我如何避免Webservice-Template對它做任何事情?我的問題是它圍繞現有的另一個肥皂信封。 – 2008-12-17 11:24:42

+0

你不能那樣做。 web服務模板是以SOAP爲中心的 - 它假定你想要將你的響應包裝在一個soap信封中。但在你的情況下,你似乎已經在肥皂信封中得到了你的迴應。 – neesh 2008-12-17 16:42:58