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

War es hilfreich?

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.

  1. 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 eingeben Bild Beschreibung hier

  2. Ü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>
    
  3. bestätigen, dass die oben bei Maven Zentral verfügbar ist durch die Suche wie diese :
    g:"postgresql" AND a:"postgresql"
    (Wo g steht für GroupID und a steht für artifactID)

  4. 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:

eingeben Bild Beschreibung hier

Und dann gehen, in die pom, tun ein dep + Tab (oder Alt + Einfügen wie gezeigt hier ), und das ist, was Sie bekommen: eingeben Bild Beschreibung hier

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: eingeben Bild Beschreibung hier

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

bekommen

Ich 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top