WSDLToJavaを使用してクライアントスタブを生成しました。その後、ここに記載されているようにクライアントを作成しました http://cxf.apache.org/docs/developing-a-consumer。
this.testService = new TestService(wsdlURL, SERVICE_NAME); //line #1
this.port = testService.getTestPort(); //line #2
Client client = ClientProxy.getClient(port); //line #3
client.getInInterceptors().add(new LoggingInInterceptor());
client.getOutInterceptors().add(new LoggingOutInterceptor());
HTTPConduit conduit = (HTTPConduit)client.getConduit();
// setting timeouts for connection
String timeOutSecond = CoreProperty.getProp(CORE_SERVICE_TIME_OUT_MILLISECONDS);
int timeout =0;
try{
if(Utils.isNotNullOrBlank(timeOutSecond))
timeout = Integer.parseInt(timeOutSecond.trim());
else
timeout = Constants.DEFAULT_SERVICE_TIME_OUT_MILLISECONDS;
}catch (NumberFormatException e) {
timeout = Constants.DEFAULT_SERVICE_TIME_OUT_MILLISECONDS;
}
conduit.getClient().setReceiveTimeout(timeout);
問題は、サーバーがダウンしている場合、行#1がエラーをスローするのに約5分かかることです-で指定されていwsdlURL
ます。
クライアント接続を確立するために30秒の時間を設定したい。
サービスが稼働している場合、すべてが正常に機能しており、receivetimeoutは正常に機能するように設定しています。接続を確立するためのタイムアウトを設定するにはどうすればよいですか。 プログラムは1行目で待機しています。サーバーがダウンしている場合は、4分以上待機しているので、それを避けたいと思います。
御時間ありがとうございます。助けてください