Вы пытались аннотировать свое исключение с помощью @WebFault
? Кроме того, вы реализуете getFaultInfo()
?
РЕДАКТИРОВАТЬ: Я понимаю, что мой ответ, возможно, был недостаточно подробным. Как указано в этой теме (например):
Требования спецификации JAX-WS 2.0
что исключение аннотировано
@WebFault
должно иметь два конструктора
и один метод [получатель для получения информации о неисправности]:
WrapperException(String message, FaultBean faultInfo)
WrapperException(String message, FaultBean faultInfo, Throwable cause)
FaultBean getFaultInfo()
WrapperException
заменяется на
название исключения и
FaultBean
заменяется на класс
имя, которое реализует компонент ошибки.
Бин ошибки - это бин Java, который
содержит информацию о вине
и используется клиентом веб-службы
узнать причину ошибки.
Это подробно описано в разделе 2.5 Ошибка спецификации JAX-WS. Ваше исключение соответствует этому? Вы можете разместить код?
ОП прав. В соответствии со спецификацией 2.1, раздел 3.7 Исключение, специфичное для службы, не требуется использовать аннотацию @WebFault
, JAX-WS может генерировать bean-объекты-оболочки динамически для исключений, которые не соответствуют шаблону, описанному в разделе 2.5 (просто предоставьте метод получения для информация, которую вы хотите, чтобы присутствовать в вине). Для исключений, которые соответствуют шаблону, описанному в разделе 2.5 (т.е. исключениям, которые имеют метод getFaultInfo
и аннотацию @WebFault
), FaultBean используется в качестве входных данных для JAXB при отображении исключения в XML-схему. 1031 *
Таким образом, решение, предложенное выше (в соответствии с шаблоном, описанным в разделе 2.5), является только обходным путем. Создание бобов-оберток должно работать только для других исключений. И я не знаю, почему это терпит неудачу здесь.