CXF - пользовательское исключение не перехватывается CXF - PullRequest
2 голосов
/ 30 января 2012

Я разрабатываю веб-сервис SOAP с CXF 2.3.3. Я хочу создать пользовательское исключение, когда пользователь отправил неверные данные. Мой класс исключений выглядит следующим образом.

@WebFault(name="InvalidUserDataException", targetNamespace="http://foo.bar.com/")
@XmlAccessorType(XmlAccessType.FIELD)
public class InvalidUserDataException extends RuntimeException {

public InvalidUserDataException(){
    super();
}

    String validationErrors;

}

В моем методе класса Impl я специально выбрасываю это исключение, чтобы посмотреть, возвращается ли CXF-исключение SoapFault клиенту, но все, что я делаю с любым из этих классов, приводит к той же ошибке: createNewUser выдало исключение, разматывая сейчас.

Обратите внимание, что интерфейс WSUserRegistration также объявляет, что метод createNewUser генерирует исключение InvalidUserDataException.

public class WSUserRegistrationImpl implements WSUserRegistration {

@Autowired
IWSUserValidationProxy validationProxyImpl;

@Override
public int createNewUser(RegistrationInputProperty registrationInfo) throws InvalidUserDataException {

    if (true) {
        throw new InvalidUserDataException();
    }
    return 1;
}

}

Моя цель - перехватить это исключение из SOAPFaultOutInterceptor и вернуть настроенный faultDetail.

Как заставить CXF перехватить эту ошибку и вернуть объект SOAPFault? Есть идеи?

1 Ответ

0 голосов
/ 30 января 2012
...