19

我必须使用 Spring WS 实现一个 web 服务客户端。

我已经阅读了http://static.springsource.org/spring-ws/site/reference/html/client.html上的文档,但我不清楚在我的服务类中扩展WebServiceGatewaySupport与直接使用的优势是什么。WebServiceTemplate

据我所知,WebServiceGatewaySupport只有几个包装方法WebServiceTemplate和一些初始化支持。

那么我为什么要扩展WebServiceGatewaySupport而不是直接使用 aWebServiceTemplate呢?

谢谢!

4

1 回答 1

15

我认为这总结了一切(在您链接的客户参考中找到):

或者,考虑从 Spring-WS 的 WebServiceGatewaySupport 便利基类派生,它公开了方便的 bean 属性以实现轻松配置。(您不必扩展此基类......它仅作为便利类提供。)

因此,如果WebserviceTemplate提供您所需要的一切,那可能就足够了。如果您需要任何额外的东西,您可以使用 .WebServiceGatewaySupport作为示例,了解如何在WebserviceTemplate.

在我的客户端软件中,我只是WebserviceTemplate在我的@Configuration类中配置如下:

@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 来发送消息。

于 2013-03-07T11:06:51.307 回答