JAX-WSWebサービスでSOAP障害を使用できます。このようにして、前提条件が見つからない場合にカスタム例外をスローできます。クライアントは何が起こったのかについてより良い考えを持っています。
@WebFault
そのためには、アノテーション付きの例外が必要です。良い例は、JavaJAX-WSWebサービスでのSOAP障害と例外の使用-JavaでのEbenHewittにあります。
ユーザーガイド»GlassFish»Metro»JAX-WSで、次の例を見つけることができます。
package fromjava.server;
import javax.jws.WebService;
@WebService
public class AddNumbersImpl {
/**
* @param number1
* @param number2
* @return The sum
* @throws AddNumbersException if any of the numbers to be added is
* negative.
*/
public int addNumbers(int number1, int number2) throws
AddNumbersException {
if (number1 < 0 || number2 < 0) {
throw new AddNumbersException("Negative number cant be " +
"added!", "Numbers: " + number1 + ", " + number2);
}
return number1 + number2;
}
}
例外:
package fromjavahandler.server;
public class AddNumbersException extends Exception {
String detail;
public AddNumbersException(String message, String detail) {
super(message);
this.detail = detail;
}
public String getDetail() {
return detail;
}
}
JAX-WSランタイムは障害を自動的に生成します。