Использование проверки бина (JSR 303) в JSF2 — приложение Primefaces

Я пытаюсь интегрировать проверку bean-компонентов с помощью валидатора hibernate в свое веб-приложение:
- Hibernate-spring-jsf2-primefaces3 на tomcat 7
Я добавил следующие файлы jar: hibernate-validator.jar и validation-api.jar к моему пути к классам в Netbeans.

В классе pojo я добавил аннотацию для Size :

@Size(min=4, message="Min 4 chars!")
private String name;

На странице .xhtml я написал:

<p:inputText title="name" id="name" value="#{myBean.user.name}"></p:inputText>
<p:message for="name" />

после запуска моего приложения и ввода менее 4 символов в поле имени я не вижу сообщения, и обработка продолжается, и данные сохраняются в базе данных. В выводе журнала я увидел:

14 juin 2012 14:55:03 org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate shouldAddEnclosingValidator
ATTENTION: Bean validation is not available on the classpath, thus the BeanValidator will not be added for the component org.primefaces.component.inputtext.InputText@1f3fd22
14 juin 2012 14:55:04 javax.faces.component._ExternalSpecifications isBeanValidationAvailable
INFO: MyFaces Bean Validation support disabled

Я хочу знать, есть ли какая-либо конфигурация, которую я должен установить, или какой-либо файл jar, который я должен добавить.


person faissal    schedule 14.06.2012    source источник


Ответы (2)


Решено,
мне пришлось добавить требуемый файл jar: jboss-logging-3.1.0.CR2.jar из zip-файла hibernate-validator в каталог lib.
Я думал, что log4j было достаточно для регистрации, но я был неправ.

person faissal    schedule 15.06.2012

На этот вопрос уже был дан ответ.

Вам нужен контейнер Java EE, если вы хотите использовать проверку бина. Tomcat — это всего лишь контейнер сервлетов, поэтому вам нужны дополнительные библиотеки.

Аннотации JSR303 не работают с Tomcat 7

person 1337    schedule 15.06.2012