Я использую Bean Validation 1.1 в веб-приложении Java EE 7. Валидация работает нормально, но мне не удается заставить ее работать как с Wildfly, так и с Liberty.
Я настроил пользовательский интерполятор сообщений через validation.xml, который помещается в библиотеку jar:
ROOT
|-- WEB-INF
|-- lib
|-- my-validation.jar
|-- mypackage
|-- MyMessageInterpolator.class
|-- META-INF
|--validation.xml
При развертывании в Wildfly 14 все работает как положено. Однако в Liberty 19 найдено MyMessageInterpolator
, , но не вызвано во время проверки (например, при использовании @Valid
в ресурсе REST).
Затем я переместил validation.xml
непосредственно в веб-приложение (не перемещая сам интерполятор сообщений):
ROOT
|-- WEB-INF
|-- classes
|-- META-INF
|-- validation.xml
|-- lib
|-- my-validation.jar
|-- mypackage
|-- MyMessageInterpolator.class
Это работает на Liberty, но я ожидаю, что это сработает и тогда, когда validation.xml
помещен в библиотечную банку. Спецификация Bean Validation 1.1 гласит:
Если явно не игнорируется [...], Configuration
учитывает конфигурацию, доступную в META-INF/validation.xml
.
Что мне здесь не хватает?