javax.validation.ValidationException: Kann nicht Standard-Provider finden
-
09-10-2019 - |
Frage
Zur Zeit arbeite ich auf Spring MVC Web-App und versuchen, Validierung mit Hilfe der @Valid Anmerkung zu anschließen. Wenn ich die Anwendung anwerfen ich die folgende Ausnahme erhalten:
javax.validation.ValidationException: Unable to find a default provider
Ich habe Hibernate Validator 3.1.0.GA auf dem Classpath sowie javax Validierung 1.0.0.GA, Hibernate Core-3.3.1.GA und Hibernate Annotations 3.4.0.GA.
Gibt es eine Inkompatibilität in diesen Versionen, dass ich nicht bin zu sehen, oder kann jemand denken, der aus irgendeinem Grund, warum ich noch immer diese Ausnahme mit Hibernate Validator im Klassenpfad?
Cheers,
Caps
Lösung
Hibernate Validator 3.1 ist kein JSR303-Anbieter. Sie müssen Hibernate Validator 4 oder höher aktualisieren.
Andere Tipps
Sehen Sie diese Antwort: https://stackoverflow.com/a/3989936/325742
Um dies zu beheben, Fügen Sie diese Maven Abhängigkeit Hibernate Validator Annotation Prozessor .
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>4.1.0.Final</version>
</dependency>
Das ist die neueste stabile Version dieses Artefakt, wie von hier
Allg Art und Weise eine der Suche nach Abhängigkeit
Lassen Sie uns sagen, dass Sie eine eine NoClassDefFoundError
bekam die besagt, dass die Klasse org.postgresql.Driver
nicht gefunden wurde.
-
Verwenden Jarvana für eine Abhängigkeit zu suchen, die
org.postgresql.Driver
bieten kann etwa so: http://www.jarvana.com/jarvana/search?search_type=class&java_class=org.postgresql.Driver , das gibt -
Übersetzen Sie die oben Abhängigkeit in Maven Abhängigkeit Format:
<dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901.jdbc4</version> </dependency>
-
bestätigen, dass die oben bei Maven Zentral verfügbar ist durch die Suche wie diese :
g:"postgresql" AND a:"postgresql"
(Wog
steht für GroupID unda
steht für artifactID) -
Schließlich fügen Sie es Ihrer pom.xml
Finding Abhängigkeiten mit M2e
Wenn Sie eine ungefähre Vorstellung von der Abhängigkeit haben benötigt oder die eine heraus Sie eine Liste gegeben brauchen, dann
Finding Abhängigkeiten in IntelliJ Idea
In IntelliJ, eine Abhängigkeit aufzublicken ist viel einfacher. Alles, was Sie tun müssen, ist, um sicherzustellen, dass die maven zentrale Repo hat wie so von IntelliJ indiziert:
Und dann gehen, in die pom, tun ein dep + Tab (oder Alt + Einfügen wie gezeigt hier ), und das ist, was Sie bekommen:
Wenn Sie in einer Klasse sind, die einen ungelösten Import hat, dann ist die schnelle Lösung gibt Ihnen eine Möglichkeit, die Suche und das Hinzufügen der entsprechenden Maven Repo durch ein Alt + Enter auf der Klasse / Paket fehlt:
Awesome ich sagen!
Das ohne Hibernate mir passiert ist.
Beim Laufen groß auf meinem PC, es hat nicht funktioniert auf meinem EC2 Linux-Server.
Der Grund war eine Existenz validation-api-1.0.0.GA.jar
Datei unter /usr/share/tomcat/lib
.
Sobald validation-api-1.0.0.GA.jar
gelöscht, es hat super funktioniert.
In meinem Fall hatte ich das gleiche Problem, aber es geschieht, weil das Glas Hibernate-Core-Version 4.1.8.Final von Maven heruntergeladen beschädigt wurde. Ich swithed auf Version 4.1.6.Final und es begann zu arbeiten. Ich war STS und Feder-Repositorys verwendet wird.
Hope, das hilft jemand.
In derselben Situation, die ich meine Jar-Version aktualisieren nur für anotations von Hibernate-und den Vermerk Hibernate-common-Annotation Hibernate4 anotations die nachstehend aufgeführt sind. Für 4 Hibernate können Sie diese Gläser verwenden -
1-hibernate-commons-annotations-4.0.5.Final 2-hibernate-validator-4.2.0.Final
Hope dies auch für Sie arbeiten.
Ich erhielt folgende Fehlermeldung:
Invocation der init-Methode fehlgeschlagen; verschachtelte Ausnahme ist javax.validation.ValidationException: Kann nicht verfügbar Anbieter Resolvern
bekommenIch entdeckte, dass in meinem WEB-INF / lib hatte ich zwei Versionen von Validator.class in die beiden folgenden JAR-Dateien:
- org.springframework.context-3.1.1.RELEASE.jar
- com.springsource.javax.validation-1.0.0.GA.jar
entfernte ich den com.springsource.javax.validation-1.0.0.GA.jar aus der WEB-INF / lib, weil es älter und nicht mehr unterstützt wird. Nachdem ich perfekt so arbeitete meine Anwendung. Ich lernte von anderen Beiträgen, dass mein Problem etwas mit doppelten Versionen derselben Datei auf dem Classpath zu tun hatte. Ich fand heraus, welche Datei verursacht wurde, das Problem nach Frühling 3 Validierung