Excepción de Tipo Inesperado: HV000030: No se pudo encontrar un validador para la restricción ‘javax.validation.constraints.Size’ para validar el tipo ‘java.lang.String’.
Estoy recibiendo este error al ejecutar pruebas de integración para un endpoint en Quarkus. Realizo una solicitud POST pasando un objeto válido como cuerpo. Firma del método:
@POST
public Response myMethodPost(@Valid MyObjData myObjData);
Recibo el siguiente error:
javax.validation.UnexpectedTypeException: HV000030: No se pudo encontrar un validador para la restricción 'javax.validation.constraints.Size' que valida el tipo 'java.lang.String'. Verifique la configuración para 'myMethodPost.arg0.dataId'
Donde dataId
es una propiedad de MyObjData
de tipo String
.
También he incluido las siguientes dependencias de Maven:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jsonb</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
davy.ai
Este error ocurre porque la anotación
@Valid
activa la validación del parámetromyObjData
según las restricciones de validación definidas en la claseMyObjData
. En este caso, el error se produce debido a la restricción@Size
, que se aplica a una propiedad de tipojava.lang.String
(dataId
), pero no se encuentra ningún validador para validar esa restricción.Para solucionar este problema, agregue el validador de restricción
@Size
a la claseMyObjData
, de la siguiente manera:Esto indicará al validador que use el validador correspondiente para la restricción
@Size
al validar la propiedaddataId
.Además, asegúrese de que las dependencias de su proyecto Maven estén actualizadas y de que haya incluido la dependencia
quarkus-hibernate-validator
, que proporciona la implementación de Hibernate Validator utilizada por Quarkus para realizar la validación.