¿Cómo uso un validador personalizado con dropwizard?

Tengo una API REST escrita por otra persona en la que el método que maneja la solicitud a una URL particular acepta un montón de parámetros que se completan a partir de parámetros de ruta.

@POST
@Path("/{classid}/{studentid}/details")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@SuppressWarnings("unchecked")


public Response processFile(@FormDataParam("sourceFile") InputStream aStream, @PathParam("classid") String classId, @PathParam("studentid")  String studentId, @Context HttpServletRequest httpRequest) {

// Code to do stuff and return a response
}

La persona que escribió esto ha usado DropWizard y no tengo experiencia previa trabajando en ello. Tengo la tarea de validar el campo studentId comparándolo con los valores en el db. Esto sería bastante sencillo, pero me han dicho que lo haga usando un validador personalizado. Soy bastante nuevo en escribir anotaciones, pero después de mucho cavar escribí una anotación como esta,

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = StudentIdValidator.StudentIdValidation.class)

public @interface StudentIdValidator {

    String message() default "{Invalid Id}";

      Class<?>[] groups() default {};

      Class<? extends Payload>[] payload() default {};


      class StudentIdValidation implements ConstraintValidator<StudentIdValidator, String> {

        @Override
        public void initialize(StudentIdValidator constraintAnnotation) {
            System.out.println("Annotation initialize !!!!!!!!!");
        }


        @Override
        public boolean isValid(String value, ConstraintValidatorContext context)                                                                            {
                // TODO Auto-generated method stub
                System.out.println("Annotation called");
                return false;
            }
        }
    }

Después de esto, agregué la anotación al campo en el que quería ejecutar la validación de esta manera,

public Response processFile(@FormDataParam("sourceFile") InputStream     aStream, @PathParam("classid") String classId, @StudentIdValidator     @PathParam("studentid")  String studentId, @Context HttpServletRequest     httpRequest)

Ahora el problema es que, cuando ejecuto / depuro el código ... no se llama a este validador, tampoco tengo idea de cómo obtener el valor de studentId dentro de la clase de validación studentId. Entonces cavé un poco más y agregué esto al archivo de la aplicación

class MyApplication extends Application<MyConfiguration> {
    ........

    @Override
   public void run(MyConfiguration myConfiguration, Environment                     currentEnvironment) {

     currentEnvironment.jersey().register(StudentIdValidator.class);

    }

Estoy literalmente al final de mi ingenio. Cualquier ayuda será muy MUY apreciada. Perdón por el mal formato.

Respuestas a la pregunta(2)

Su respuesta a la pregunta