validator example bean java spring bean-validation hibernate-validator

java - example - spring boot validation



javax.validation.ValidationException: no se puede encontrar el proveedor predeterminado (6)

Actualmente estoy trabajando en la aplicación web Spring MVC e intento conectar la validación con la anotación @Valid. Cuando enciendo la aplicación recibo la siguiente excepción:

javax.validation.ValidationException: Unable to find a default provider

Tengo Hibernate Validator 3.1.0.GA en classpath, así como javax validation 1.0.0.GA, Hibernate Core 3.3.1.GA e Hibernate Annotations 3.4.0.GA.

¿Hay alguna incompatibilidad en esas versiones que no veo, o alguien puede pensar en alguna razón por la cual sigo recibiendo esta excepción con Hibernate Validator en la ruta de la clase?

Aclamaciones,

Tapas


En la misma situación, actualizo mi versión Jar solo para anotaciones de hibernate-anotation e hibernate-common-annotation a Hibernate4 anotaciones que se enumeran a continuación. Para Hibernate 4 puede usar este frasco

1-hibernate-commons-annotations-4.0.5.Final 2-hibernate-validator-4.2.0.Final

Espero que esto también funcione para ti.


En mi caso, tuve el mismo problema, pero estaba sucediendo porque el archivo hibernate-core versión 4.1.8.Final descargado por maven estaba dañado. Cambié a la versión 4.1.6.Final y comenzó a funcionar. Estaba usando STS y repositorios de primavera.

Espero que esto ayude a alguien.


Esto me pasó a mí sin Hibernate.

Funcionando muy bien en mi PC, no funcionó en mi servidor EC2 Linux.

El motivo fue la existencia del archivo validation-api-1.0.0.GA.jar en /usr/share/tomcat/lib .

Una vez que se eliminó validation-api-1.0.0.GA.jar , funcionó de maravilla.


Hibernate Validator 3.1 no es un proveedor JSR303. Necesita actualizar a Hibernate Validator 4 o posterior.


Recibí el siguiente error:

La invocación del método init falló; la excepción anidada es javax.validation.ValidationException: no se pueden obtener los resolvedores de proveedores disponibles

Descubrí que en mi directorio WEB-INF / lib tenía dos versiones de Validator.class presentes en los dos siguientes archivos jar:

  • org.springframework.context-3.1.1.RELEASE.jar
  • com.springsource.javax.validation-1.0.0.GA.jar

Eliminé el archivo com.springsource.javax.validation-1.0.0.GA.jar del directorio WEB-INF / lib porque es más antiguo y ya no es compatible. Después de hacerlo, mi aplicación funcionó perfectamente. Aprendí de otras publicaciones que mi problema tenía algo que ver con las versiones duplicadas del mismo archivo en el classpath. Descubrí qué archivo estaba causando el problema después de leer la validación de Spring 3


Ver esta respuesta: https://.com/a/3989936/325742

Para solucionarlo, agregue esta dependencia Maven Hibernate Validator Annotation Processor .

<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator-annotation-processor</artifactId> <version>4.1.0.Final</version> </dependency>

Esa es la última versión estable de ese artefacto, como se ve desde here

Manera genérica de encontrar una dependencia

Digamos que obtuviste un NoClassDefFoundError que indica que no se encontró la clase org.postgresql.Driver .

  1. Utilice Jarvana para buscar una dependencia que pueda proporcionar org.postgresql.Driver como lo siguiente: http://www.jarvana.com/jarvana/search?search_type=class&java_class=org.postgresql.Driver que da

  2. Traduzca la dependencia anterior en el formato de dependencia maven:

    <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901.jdbc4</version> </dependency>

  3. Confirme que lo anterior esté disponible en Maven Central buscando de this :
    g:"postgresql" AND a:"postgresql"
    (donde g significa GroupID y a significa "artifactID")

  4. Finalmente, agrégalo a tu pom.xml

Encontrar dependencias usando m2e

Si tiene una idea aproximada de la dependencia necesaria o puede encontrar la que necesita con una lista, la búsqueda de dependencias de m2e puede ser la forma más rápida de agregar una dependencia a su pom.xml

Pasos:

  1. Haga clic en la pestaña Dependencias (A) en su pom.xml
  2. Haga clic en Agregar (B)
  3. Busque la dependencia por groupId / artifactId (C)
  4. Haga doble clic en el requerido de los resultados de búsqueda para que se agregue directamente a su pom.xml (D)

AD marcado en la siguiente instantánea:

Encontrar dependencias en IntelliJ Idea

En IntelliJ, buscar una dependencia es mucho más fácil. Todo lo que necesita hacer es asegurarse de que el repositorio central de Maven haya sido indexado por IntelliJ de la siguiente manera:

Y luego, ve al pom, haz una dep + Tab (o un Alt + Insert como se muestra here ), y esto es lo que obtienes:

Si se encuentra en una clase que tiene una importación no resuelta, entonces la solución rápida le ofrece la opción de buscar y agregar el repositorio maven correspondiente haciendo Alt + Enter en la Clase / Paquete faltante:

¡Increíble digo!