Отсутствие аннотаций JSR303 для работы с Tomcat 7 - PullRequest
0 голосов
/ 20 апреля 2011

После пары часов работы в Google и нескольких уроков я побежден ... Не факт, что я получаю ошибки, которые могут дать мне подсказку о том, в чем проблема, это полное их отсутствие.Я сумасшедший!

Следующий код работает, только не так, как должно!Аннотации для проверки того, что ввод не равен нулю или меньше 3 символов, просто никогда не запускаются.Они также не дают никаких ошибок при развертывании проекта или при записи переменной name.

public class testBean
{
    @NotNull
    @Size(min=3)
    private String name;
}

public void test()
{
    System.out.println(name);
}

И форма ввода:

<h:form>
        <h:inputText value="#{testBean.name}" />
    <h:commandButton value="Send" action="#{testBean.test()}" />
</h:form>

Мне кажетсячто это tomcat вызывает проблемы, хотя я вполне уверен, что импортировал все необходимые библиотеки.То же самое относится и к IDE, которую я использую, Eclipse.

Ответы [ 2 ]

5 голосов
/ 20 апреля 2011

Что касается библиотек, я включил «validation-api-1.0.0.GA.jar» в папку «WEB-INF / lib» и в «apache-tomcat-7 /».lib ".

Вы установили только API, а не реализацию.API является абстрактным контрактом, так что вы можете объявить / использовать его в своем коде и иметь свободу выбора реализации.Реализация содержит конкретный код и выполняет реальную работу.Вам также необходимо установить impl.Эталонная реализация JSR-303 - это Hibernate Validator .Подробности загрузки здесь .В настоящее время последний финал 4.1.0 .Он содержит файл hibernate-validator-4.1.0.Final.jar, который является реальной реализацией.Бросьте это в Webapp/WEB-INF/lib.Он не обязательно должен быть в Tomcat7/lib, я бы также удалил API, чтобы предотвратить будущие коллизии пути к классам.

1 голос
/ 18 мая 2012

У меня была такая же проблема, и я некоторое время искал, используя hibernate-validator-4.2.0.Final.jar, мне не хватало slf4j-api-1.6.4.jar. Проблема в том, что валидатор hibernate не падает, но НЕ сообщает, что он не работает ....

...