класса javax.утверждение.ValidationException: не удается найти поставщика по умолчанию
в настоящее время я работаю над Spring MVC web app и пытаюсь подключить проверку с помощью аннотации @Valid. Когда я запускаю приложение, я получаю следующее исключение:
javax.validation.ValidationException: Unable to find a default provider
У меня есть Hibernate Validator 3.1.0.GA на пути к классам, а также проверка javax 1.0.0.GA, Hibernate Core 3.3.1.Аннотации GA и Hibernate 3.4.0.Га.
есть ли несовместимость в тех версиях, которые я не вижу, или кто-нибудь может подумать о какой-либо причине, почему я все еще получение этого исключения с помощью Hibernate Validator на пути к классу?
спасибо,
Caps
6 ответов
Hibernate Validator 3.1 не является поставщиком JSR303. Вам необходимо обновить до Hibernate Validator 4 или более поздней версии.
см. этот ответ:https://stackoverflow.com/a/3989936/325742
чтобы исправить, добавьте эту зависимость maven Процессор Аннотаций Hibernate Validator.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>4.1.0.Final</version>
</dependency>
это последняя стабильная версия этого артефакта, как видно из здесь
общий способ поиска зависимости
предположим, что у вас есть a NoClassDefFoundError
о том, что класс org.postgresql.Driver
не найдено.
используйте Jarvana для поиска зависимости, которая может предоставить
org.postgresql.Driver
вот так : http://www.jarvana.com/jarvana/search?search_type=class&java_class=org.postgresql.Driver что дает-
перевести вышеуказанную зависимость в формат зависимости maven:
<dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901.jdbc4</version> </dependency>
подтвердите, что вышеуказанное доступно в Maven Central, выполнив поиск как этой :
g:"postgresql" AND a:"postgresql"
(гдеg
означает GroupID иa
означает artifactID)наконец, добавьте его в свой pom.в XML
Поиск зависимостей с помощью m2e
если у вас есть приблизительное представление о необходимой зависимости или вы можете выяснить, какой вам нужен список, то m2eпоиск зависимостей может будьте самым быстрым способом добавления зависимости к вашему pom.в XML
действия :
- перейдите на вкладку зависимости (A) в pom.в XML
- нажмите Add (B)
- Поиск зависимости по groupId / artifactId (C)
- дважды щелкните нужный из результатов поиска, чтобы добавить его непосредственно в pom.xml (D)
A-D отмечено на следующем снимке :
Поиск зависимостей в IntelliJ Idea
в IntelliJ поиск зависимости намного проще. Все, что вам нужно сделать, это убедиться, что центральное РЕПО maven было проиндексировано IntelliJ следующим образом:
а потом, зайди в помпон, сделай dep+ Tab (или Alt+вставить как показано здесь), и это то, что вы получить:
если вы находитесь в классе, который имеет неразрешенный импорт, то быстрое исправление дает вам возможность поиска и добавления соответствующего репозитория maven, выполнив Alt+ Enter о пропавшем пакете/:
круто я скажу !
Это случилось со мной, без гибернации.
отлично работает на моем компьютере, он не работает на моем сервере EC2 Linux.
причиной было существование под /usr/share/tomcat/lib
.
один раз validation-api-1.0.0.GA.jar
удален, он отлично работал.
в моем случае у меня была такая же проблема, но это происходило из-за банки hibernate-core версии 4.1.8.Окончательный загруженный maven был поврежден. Я переключился на версию 4.1.6.Финал и он начал работать. Я использовал репозитории STS и spring.
надеюсь, это кому-то поможет.
в той же ситуации я обновляю свою версию Jar только для анотаций из hibernate-anotation и hibernate-common-annotation для анотаций Hibernate4, которые перечислены ниже. Для Hibernate 4 Вы можете использовать эти банки -
1-hibernate-commons-аннотации-4.0.5.Окончательный 2-hibernate-валидатор-4.2.0.Финал
надеюсь, это сработает и для вас.
Я получил следующую ошибку:
не удалось вызвать метод init; вложенным исключением является javax.утверждение.ValidationException: не удается получить доступные разрешители поставщика
Я обнаружил, что в моем каталоге WEB-INF/lib у меня есть два версии валидатора.класс, присутствующий в обоих следующих jar файлы:
- org.springframework.контекст-3.1.1.ОСВОБОЖДАТЬ.Джар
- com.springsource.javax.validation-1.0.0.GA.jar
Я удалил com.springsource.javax.validation-1.0.0.GA.jar из каталога WEB-INF/lib, потому что он старше и больше не поддерживается. После этого мое приложение работало отлично. Из других сообщений я узнал, что моя проблема связана с дублирующими версиями одного и того же файла на пути к классам. Я понял. какой файл вызывал проблему после чтения Весна 3 Проверка