我正在尝试使用Spring-WS编写我的第一个客户端,并且在某些基础知识上有点困惑。我需要在标头中插入一个SAML标记,我注意到WebServiceTemplate类允许拦截器和WebServiceMessageCallbacks。
有人可以帮助我理解为什么我应该使用一个与另一个相比?
其次,我注意到WST类允许拦截器列表,但只允许一个回调。有谁知道设计决策背后的逻辑是什么?为什么没有能力传递数组或回调列表?
谢谢,
埃里克
答案 0 :(得分:3)
在阅读你的问题之后,我也想知道同样的问题( - :
在this link上有一个简短的解释,这正是我如何使用它们的原因。例如,对于特定请求,我需要设置SOAP操作:
JAXBElement<Response> response = (JAXBElement<Response>) webserviceTemplate.marshalSendAndReceive(
request,
new SoapActionCallback("PutOrganisationUnitRequest")
);
这确实是链接中提到的一个简单的匿名类。另一方面,拦截器被定义并用于所有请求。例如,看一下XwsSecurityInterceptor,我用它来设置所有请求的身份验证。