19

Spring WS を使用して Web サービス クライアントを実装する必要があります。

http://static.springsource.org/spring-ws/site/reference/html/client.htmlのドキュメントを読みましたが、サービス クラスでWebServiceGatewaySupport直接使用する場合と拡張する場合の利点が明確ではありません。WebServiceTemplate

ソースからわかる限り、 には、いくつかの初期化サポートWebServiceGatewaySupport用のラッパー メソッドしかありません。WebServiceTemplate

WebServiceGatewaySupportでは、直接使用する代わりに拡張する必要があるのはなぜWebServiceTemplateですか?

ありがとうございました!

4

1 に答える 1

15

これはすべてを要約していると思います(リンクしたクライアントの参照に記載されています):

または、簡単な構成を可能にする便利な Bean プロパティを公開する Spring-WS の WebServiceGatewaySupport 便利な基本クラスから派生させることを検討してください。(この基本クラスを拡張する必要はありません...便利なクラスとしてのみ提供されています。)

したがって、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 に答える