我已经使用 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 秒的时间来建立客户端连接。
如果服务启动,一切正常,并且我设置的接收超时工作正常。如何设置建立连接的超时时间。 程序在第 1 行等待,如果服务器关闭,它会在那里等待超过 4 分钟,我想避免这种情况。
谢谢你的时间。请帮忙