我必须使用Spring WS实现一个webservice客户端。
我已经阅读了http://static.springsource.org/spring-ws/site/reference/html/client.html上的文档,但我不清楚扩展WebServiceGatewaySupport与在我的服务类中直接使用WebServiceTemplate相比有什么优势。
据我从源代码中可以看出,WebServiceGatewaySupport只有几个用于WebServiceTemplate的包装器方法和一些初始化支持。
那么为什么我要扩展WebServiceGatewaySupport而不是直接使用WebServiceTemplate呢?
谢谢!
发布于 2013-03-07 19:06:51
我认为这就是总结(可以在你链接的客户参考中找到):
或者,考虑从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来发送消息。
https://stackoverflow.com/questions/15203919
复制相似问题