2011-05-16 20 views
5
@RequestMapping(..) 
@ResponseBody 
public SearchResponse search(SearchRequest request) throws SearchException { .. } 

quiero devolver al solicitante:serializar excepciones a JSON con la primavera-mvc

  • JSON serializado respuesta de búsqueda en caso de que todo está bien
  • detalles de la excepción
  • JSON-serializados si SearchException se lanza .

La primera parte funciona bien (teniendo Jackson en el classpath y <mvc:annotation-driven />) pero no veo una manera fácil de serializar la excepción como json.

puedo registrar un controlador personalizado, y escribir una cadena JSON a partir de ahí, pero también pueden necesitar serialización XML, lo que significará que necesitaré condicionales en el controlador. ¿No hay algo listo para eso?

+1

Ver http://stackoverflow.com/questions/4948627/exceptionhandler-returning-json -o-xml-no-trabajo-en-primavera-mvc-3 – axtavt

Respuesta

4

Esto es lo que trabajó: Tomé axtavt's suggestion (anotar con @Component), y añadí este método para el controlador:

@ExceptionHandler(CustomException.class) 
public @ResponseBody CustomException handleException(CustomException ex) { 
    return ex; 
} 
+0

funciona desde la primavera de 3,1, que no funciona en la primavera 3,0: https://jira.spring.io/browse/SPR-6902 –

Cuestiones relacionadas