@Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface FaultAction
FaultAction аннотация используется в Action аннотация, чтобы разрешить явную ассоциацию Адресации WS Action свойство адресации сообщения с fault сообщения работы WSDL, отображенной от исключения class. wsam:Action значение атрибута в fault сообщение в сгенерированной работе WSDL, отображенной для className class равен соответствующему значению в FaultAction. Для точного вычисления wsam:Action значения для сообщений отказа, обратитесь к алгоритму в спецификации JAX-WS.
Пример 1: Определите явные значения для Action свойство адресации сообщения для input, output и fault обменивайтесь сообщениями, если метод Java бросает только одну службу определенное исключение.
@WebService(targetNamespace="http://example.com/numbers")
public class AddNumbersImpl {
@Action(
fault = {
@FaultAction(className=AddNumbersException.class, value="http://example.com/faultAction")
})
public int addNumbers(int number1, int number2)
throws AddNumbersException {
return number1 + number2;
}
}
Сгенерированный WSDL похож:
<definitions targetNamespace="http://example.com/numbers" ...>
...
<portType name="AddNumbersPortType">
<operation name="AddNumbers">
...
<fault message="tns:AddNumbersException" name="AddNumbersException"
wsam:Action="http://example.com/faultAction"/>
</operation>
</portType>
...
</definitions>
Пример 2: Вот пример, который показывает если явное значение для Action свойство адресации сообщения для службы определенное исключение не присутствует.
@WebService(targetNamespace="http://example.com/numbers")
public class AddNumbersImpl {
public int addNumbers(int number1, int number2)
throws AddNumbersException {
return number1 + number2;
}
}
Сгенерированный WSDL похож:
<definitions targetNamespace="http://example.com/numbers" ...>
...
<portType name="AddNumbersPortType">
<operation name="AddNumbers">
...
<fault message="tns:addNumbersFault" name="InvalidNumbers"
wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbers/Fault/AddNumbersException"/>
</operation>
</portType>
...
</definitions>
Пример 3: Вот пример, который показывает, как определить явные значения для Action свойство адресации сообщения, если метод Java бросает больше чем одну службу определенное исключение.
@WebService(targetNamespace="http://example.com/numbers")
public class AddNumbersImpl {
@Action(
fault = {
@FaultAction(className=AddNumbersException.class, value="http://example.com/addFaultAction"),
@FaultAction(className=TooBigNumbersException.class, value="http://example.com/toobigFaultAction")
})
public int addNumbers(int number1, int number2)
throws AddNumbersException, TooBigNumbersException {
return number1 + number2;
}
}
Сгенерированный WSDL похож:
<definitions targetNamespace="http://example.com/numbers" ...>
...
<portType name="AddNumbersPortType">
<operation name="AddNumbers">
...
<fault message="tns:addNumbersFault" name="AddNumbersException"
wsam:Action="http://example.com/addFaultAction"/>
<fault message="tns:tooBigNumbersFault" name="TooBigNumbersException"
wsam:Action="http://example.com/toobigFaultAction"/>
</operation>
</portType>
...
</definitions>
| Модификатор и Тип | Необходимый Элемент и Описание |
|---|---|
Class<? extends Exception> |
имя класса
Имя исключения class
|
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92