2016-10-06 15 views
0

SpringのWebServiceTemplateのタイムアウトをプログラムで設定する方法はありますか?私はApplication Context設定ファイルでMessage Senderを使って設定することについて古い記事を見てきました。しかし、私たちのプロジェクトでは、これらのオブジェクトはインジェクションではなくコードによって作成されています。SpringのWebServiceTemplateでタイムアウトを設定する

お客様のエンドポイントが長すぎる場合があり、他のリクエストをキューに入れてしまうことがあるため、デフォルトのタイムアウトを低くする必要があります。

PS:春ウェブサービス2.2ので春-WS-コア2.2.2.RELEASE.jarに

答えて

1

を使用して、あなたは春のClientHttpRequestMessageSenderを使用することができます。

エクセレント
@Service 
public class CustomWebServiceImpl extends WebServiceGatewaySupport implements CustomWebService { 
    private static final int CONNECTION_TIMEOUT = (10 * 1000); 
    private static final int READ_TIMEOUT = (10 * 1000); 

    public CustomWebServiceImpl() { 
     SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); 
     requestFactory.setConnectTimeout(CONNECTION_TIMEOUT); 
     requestFactory.setReadTimeout(READ_TIMEOUT); 
     setMessageSender(new ClientHttpRequestMessageSender(requestFactory)); 
    } 

    (...) 
} 
+0

、私は実際にカスタムマーシャラーはそう設定していました送信者を追加するのは簡単でした。今すぐテストしなければなりません – gvasquez

+0

喜んで勉強する機会に助けてくれてありがとうございます... –

+0

この実装はThreadSafeですか、それとも別の種類の送信者に切り替える必要がありますか?私のWSクライアントは私的な静的な最終変数に格納され、多くのスレッドで使用されているので、私は確信が必要です – gvasquez

関連する問題