避免使用Spring MVC @RequestMapping发送Tomcat错误页面最简单的方法是什么?

时间:2012-06-28 16:48:58

标签: tomcat spring-mvc

我尝试了几种不同的方法,包括@ExceptionHandler,并使用HttpServletResponse作为映射方法的参数。

@RequestMapping(value="/update", method=RequestMethod.POST)
public ResponseEntity<String> update(final HttpEntity<String> requestEntity) {
    try {
        // stuff
        return new ResponseEntity<String>("", HttpStatus.NO_CONTENT);
    } catch (MyDataException e) {
        return new ResponseEntity<String>(e.toJSONString(), HttpStatus.BAD_REQUEST);
    }
}

我想要的只是toJSONString的内容作为响应主体。但是,设置了HttpStatus.BAD_REQUEST值后,系统将使用默认的Tomcat错误页面。如果我没有将它设置为错误状态,它会按照我的意图创建正文。但我必须设置错误状态。

正如我所说,我在Spring MVC API中尝试了四种不同的方式,它们最终看起来像调用sendError()而不是以我想要的方式处理响应。

1 个答案:

答案 0 :(得分:0)

这实际上是PEBKAC的情况,或者说没有认识到写得不好的http代理正在用Tomcat错误页面主动替换响应主体。