0

我正在实现一个连接到两个 Web 服务的 Java Web 客户端。所以基本上我有一个表格列出这两个 Web 服务的状态。例子:

<table>
<tr>
<th>webservice</th>
<th>status</th>
</tr>
<tr>
<td>webservice 1</td>
<td>connected</td>
</tr>
<tr>
<td>webservice 2</td>
<td>connected</td>
</tr>
</table>

我的Java控制器:

class test {

 @autowired
 private WebServiceTemplate webservice1;
 @autowired
 private WebServiceTemplate webservice2;

 public String mycontroller(...) {
  webserviceReq request = new ObjectFactory().createwebserviceReq();
  webserviceRes response = new ObjectFactory().createwebserviceRes();

 try {
  response = (webserviceRes)this.webservice1.marshalSendAndReceive(webserviceReq);
  //...set all the data
 }
 catch(Exception e) {

 }

 try {
  response = (webserviceRes)this.webservice2.marshalSendAndReceive(webserviceReq);
  //...set all the data
 }
 catch(Exception e) {

 }
 }//end of function
}

如果与任一 Web 服务的连接失败(可能是 Web 服务崩溃或 wat),则将状态显示为断开连接。

目前我面临的问题是,如果任一连接失败,我得到 http 状态 500,请求处理失败。

如何捕获每个 Web 服务的连接失败并将其打印到状态列中?

4

1 回答 1

0

在每个catch块中,提取相关部分Exception以确定具体错误。将它们添加到返回的String.

通过不捕获Exception,但您的 Web 服务专门抛出的子类,事情可能会变得更容易。这些可能包含相关的错误信息。

于 2013-07-11T10:29:14.053 回答