Spec-Zone.ru › OpenJDK 8

Тип аннотации FaultAction


@Documented
 @Retention(value=RUNTIME)
 @Target(value=METHOD)
public @interface FaultAction

Аннотация FaultAction используется внутри аннотации Action, чтобы разрешить явную привязку свойства адресации сообщения WS-Addressing Action к сообщениям fault операции WSDL, сопоставленной с классом исключения.

Значение атрибута wsam:Action в сообщении fault в сгенерированной операции WSDL, сопоставленной с классом className, равно соответствующему значению в 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>
С момента:
JAX-WS 2.1

Обязательные элементы

Модификатор и тип Обязательный элемент и описание
Class<? extends Exception> className

Имя класса исключения

Необязательные элементы

Модификатор и тип Необязательный элемент и описание
String value

Значение свойства адресации сообщения WS-Addressing Action для исключения

Элементы

className

public abstract Class<? extends Exception> className

Имя класса исключения

value

public abstract String value

Значение свойства адресации сообщения WS-Addressing Action для исключения

По умолчанию:
""

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API