Я пытаюсь использовать функцию BeanValidation Apache CXF. И застрявшие теперь причины не имеют никакой подсказки, как обрабатывать и анализировать исключения, брошенные валидатором. У меня есть веб-интерфейс-службы:Сведения об ошибке проверки фасоли Apache CXF
@WebService
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERAL, parameterStyle=SOAPBinding.ParameterStyle.BARE)
public interface TestWSInterface {
@WebMethod
@WebResult(name = "helloResponse")
@Valid
public Hello.Response hello(@WebParam(name = "helloRequest") @Valid Hello.Request request) throws TestWSException;
}
Hello.Request аннотируется:
@XmlType(name = "HelloRequest")
public static class Request extends Command.Request {
@NotNull(message = "not null required")
@Size(min = 1, max = 5, message = "[1..5] characters")
public String name;
}
И следующие конфигурации в CFX-servlet.xml:
<jaxws:endpoint id="testWS" implementor="#test" address="/TestWS">
<jaxws:features>
<ref bean="commonValidationFeature"/>
</jaxws:features>
</jaxws:endpoint>
<bean id="commonValidationFeature" class="org.apache.cxf.validation.BeanValidationFeature"/>
Итак, тогда я бегу мой запрос с SoapUI и имя прохода, содержащее, например, 6 символов, у меня есть следующий ответ:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Fault occurred while processing.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Так что мой главный вопрос: как я могу уловить ConstraintViolationException и продлить ответ на ошибку с подробными сообщениями из ограничения аннотации? Документация от Apache CXF - Bean Validation Feature выглядит не очень полезной для меня. Так что я действительно нуждаюсь, например.