@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