código es así:ExceptionHandler volver JSON o XML que no trabajan en la primavera MVC 3
@Controller
public class TestController {
@RequestMapping(value = "/testerror", method = RequestMethod.GET)
public @ResponseBody ErrorTO testerror(HttpServletRequest request,HttpServletResponse response) {
throw new ABCException("serious error!");
}
@ExceptionHandler(ABCException.class)
public @ResponseBody ErrorTO handleException(ABCException ex,
HttpServletRequest request, HttpServletResponse response) {
response.setStatus(response.SC_BAD_REQUEST);
return new ErrorTO(ex.getMessage());
}
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody ErrorTO test(HttpServletRequest request,
HttpServletResponse response) {
ErrorTO error = new ErrorTO();
error.setCode(-12345);
error.setMessage("this is a test error.");
return error;
}
}
cuando traté rizo -H "Accept: application/json" -v "http://localhost.com: 8080/testerror " Recibí este error: org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver - No se pudo encontrar HttpMessageConverter que admita el tipo de devolución [class com.kibboko.poprocks.appservices.dtos.ErrorTO] y [aplicación/json]
pero si intento curl -H "Aceptar: application/json" -v "http://localhost.com:8080/test", trabajado y respuesta json devuelta. "application/xml" funcionó también.
¿Hay algo especial acerca del controlador de excepciones que debo cuidar para que funcione con json o xml? ¡Gracias!
Eso es realmente una molestia. ¿Sería posible encontrar una solución más simple? ¿Me puedes dar un ejemplo de trabajo? – Bobo
@Bobo: ¿Has intentado declarar ese frijol en tu contexto? Debería funcionar bien. – axtavt
@axtavt: lo siento, soy un verdadero novato en Spring land. ¿Por "declarar ese frijol en tu contexto" te refieres a declararlo en el archivo de configuración de primavera? – Bobo