代码是这样的:的ExceptionHandler返回JSON或XML Spring 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;
}
}
,当我试图卷曲-H “接受:应用/ JSON的” -v“http://localhost.com: 8080/testerror“ 我得到这个错误: org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver - 找不到支持返回类型的HttpMessageConverter [class com.kibboko.poprocks.appservices.dtos.ErrorTO]和[application/json]
但如果我尝试curl -H“Accept:application/json”-v“http://localhost.com:8080/test”,工作和返回json响应。 “application/xml”也起作用。
是否有什么特殊的异常处理程序我需要照顾,所以它可以使用json或xml?谢谢!
那可真是一件麻烦事。是否有可能找到更简单的解决方案?你能给我一个工作的例子吗? – Bobo 2011-02-10 14:40:22