¿Cómo uso @Valid con los parámetros @RequestBody de Spring MVC?

Tengo un problema con el uso de@Valid en un parámetro para un método de controlador en mi@Controller. Mi código se ve así:

@RequestMapping(value=BIBBLE_BOBBLE_URI_PATTERN + "/widgets", method=RequestMethod.POST)
@ResponseBody
@ResponseStatus(HttpStatus.CREATED)
public Widget saveNewWidget(
        @PathVariable final String username,
        @PathVariable final String bibbleBobbleName,
        @Valid @RequestBody final Widget widget,
        final BindingResult results,
        final HttpServletRequest request,
        final HttpServletResponse response)

dóndeWidget es la clase para uno de mis objetos de dominio. Estoy usando la@RequestBody anotación para indicar que la carga útil de la solicitud se asigna awidget (en mis pruebas, las solicitudes son JSON, aunque Jackson está en mi classpath, por lo que también podría usar XML).

omo puedes ver, laBindingResultl parámetro @ sigue directamente después delWidget parámetro, pero obtengo el siguiente error:

java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!

¿Cómo aplico la@Valid anotación a una@RequestBody parámetro y luego obtener los resultados?

PD. Estoy usandoannotation-driven para manejar el cableado de los controladores, negociar contenido, etc.

Respuestas a la pregunta(2)

Su respuesta a la pregunta