es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Este error ocurre porque la anotación @Valid activa la validación del parámetro myObjData según las restricciones de validación definidas en la clase MyObjData. En este caso, el error se produce debido a la restricción @Size, que se aplica a una propiedad de tipo java.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 clase MyObjData, de la siguiente manera:

    public class MyObjData {
        @Size(min = 1, max = 10)
        private String dataId;
    
        // ... otras propiedades y métodos
    }
    

    Esto indicará al validador que use el validador correspondiente para la restricción @Size al validar la propiedad dataId.

    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.

Comments are closed.