jre5
初めての体験でwsdlクライアントを構築しようとして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"
}