我尝试为我的第一次体验构建 wsdl 客户jre5
端JAX-WS RI 2.1.3
。我用wsdl2java
工具生成了类,cxf
并围绕客户端编写了包装类,如下所示:
public class RequestHelper {
private DataLoadService service = new DataLoadService();
private DataLoadServiceSoap client;
private static String token;
//....my constructor....
public void sendData(data){
try{
if (tokenIsExpired()){
renewToken();
}
client.sendData(data, this.token);
}catch(SOAPFaultException e){
//...work with e
}
}
}
我无法理解如何在sendData
方法中处理异常。
我的意思是,例如,在 HTTP 中status codes
,我们可以读取状态代码并决定我们从服务器获得的错误类型以及我们希望如何处理它们。
就我而言,我对令牌过期时间有疑问。有时sendData
请求会长时间到达服务器。当请求已经在服务器上时,令牌不再有效,然后我收到异常消息“令牌已过期”。我想单独捕获这种类型的异常,像这样:
public class RequestHelper {
private DataLoadService service = new DataLoadService();
private DataLoadServiceSoap client;
private static String token;
//....my constructor....
public void sendData(data){
try{
if (tokenIsExpired()){
renewToken();
}
client.sendData(data, this.token);
}catch(SOAPFaultException e){
//...work with e
}catch(TokenExpiredException e){
renewToken();
client.sendData(data, this.token);
}
}
}
我如何通过JAX-WS RI 2.1.3
图书馆实现这一目标?
升级版:
} catch (SOAPFaultException e) {
SOAPFault f = e.getFault();
f.getFaultString() //yes here we have error description with "Token"
//but with locals dependency, this is not safe handle exception by this value
f.getFaultCode() //here simply string "soap:Receiver", do not know how i can recognize only "token exceptions"
}