我必须使用Spring WS实现webservice客户端。
我已经在http://static.springsource.org/spring-ws/site/reference/html/client.html阅读了文档,但我不清楚在我的服务类中扩展WebServiceGatewaySupport
与直接使用WebServiceTemplate
相比有什么好处。
据我所知,WebServiceGatewaySupport
只有WebServiceTemplate
的一些包装器方法和一些初始化支持。
那么我为什么要扩展WebServiceGatewaySupport
而不是直接使用WebServiceTemplate
?
谢谢!
答案 0 :(得分:12)
我认为这总结了一切(在您链接的客户参考中找到):
或者,考虑从Spring-WS派生 WebServiceGatewaySupport方便基类,它暴露出来 方便的bean属性,以便于配置。 (你不 必须扩展这个基类......它是为了方便而提供的 仅限课程。)
所以,如果WebserviceTemplate
提供了你所需要的一切,那就足够了。如果您需要额外的任何内容,可以使用WebServiceGatewaySupport
作为示例,了解如何围绕WebserviceTemplate
包装您自己的便利方法。
在我的客户端软件中,我只是在我的@Configuration
类中配置WebserviceTemplate
,如下所示:
@Bean
public WebServiceTemplate webServiceTemplate() {
WebServiceTemplate template = new WebServiceTemplate();
template.setMessageFactory(messageFactory());
template.setDefaultUri(defaultUri);
template.setMarshaller(marshaller());
template.setUnmarshaller(marshaller());
template.setInterceptors(new ClientInterceptor[] {interceptor()});
return template;
}
(所有方法调用都是对配置中与本示例中不相关的其他方法的引用)。 我可以在我的代码中到处使用该bean来发送消息。