如何自动选择网络服务?

时间:2011-02-23 14:54:15

标签: java web-services

我的应用程序需要连接到Web服务才能获取xml数据。我有一个主要和次要的Web服务。

如果主服务器无法响应,故障转移到辅助Web服务的最佳方法是什么?另外,我如何设置等待主要的超时时间?

由于

1 个答案:

答案 0 :(得分:1)

最佳解决方案是为Web服务设置VIP,并自动进行故障转移。这样,您的应用程序只关心一个端点,而不需要担心细节。

如果您真的想从Java代码处理它,它取决于您用于连接Web服务的库。如果您使用的是核心Java,它可能看起来像这样:

try {

  URL primaryURL = new URL(web_service_endpoint);
  HttpURLConnection con = (HttpURLConnection) primaryURL.openConnection();
  con.setConnectTimeout(5000); //set timeout to 5 seconds

  //Try retrieving some XML

} catch (java.net.SocketTimeoutException e) {
  //Try connecting to secondary web service
  //Maybe a recursive method call with a different URL or something
}