Pregunta

Se puede utilizar un resorte WS-WebserviceTemplate para llamar a un servicio web y evitar que se genere un SOAP sobre? Es decir, el mensaje ya contiene un jabón-sobre y no quiero que la envuelve WebserviceTemplate otro en torno a ella. : -)

La razón por la que quiero esto es que me gustaría llamar a un servicio web que utiliza WS-Security y no quieren poner las cosas WS-Security en el WebserviceTemplate, sino que sólo quiere alimentar con un mensaje pre-generados información de WS-Security en el SOAP sobre. Traté de llamar al método sendSourceAndReceiveToResult con una fuente ya contiene un jabón-Sobre con el material de WS-Security y la plantilla de servicio web se envuelve alrededor de otro jabón-Envelope y por lo tanto destruye el mensaje.

¿Fue útil?

Solución

Usted está utilizando WS-Security de una manera extraña ... supongo que usted está tratando de evitar la dependencia de WS-Security mediante el uso de mensajes pre-generada - de cliente simple podría tener sentido, aunque no es definitivamente por caso el libro.

Puede configurar WebServiceTemplate utilizar XML llanura sin jabón mediante el establecimiento de MessageFactory en WebServiceTemplate a este 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" />

Otros consejos

Los interceptores pueden ser muy útiles para el tipo de cosas que estamos tratando de hacer. Echar un vistazo a la jerarquía Interceptor aquí: http://static.springframework.org/spring-ws/docs/1.0-m1/api/org/springframework/ws/EndpointInterceptor.html Puede registrar una EndpointInterceptor con la primavera-ws y manipular la respuesta a su gusto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top