1

我已经尝试了几种不同的方法,包括@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() 而不是以我想要的方式处理响应。

4

1 回答 1

0

这实际上是 PEBKAC 的一个案例,或者更确切地说,它没有认识到编写不佳的 http 代理正在积极地用 Tomcat 错误页面替换响应正文。

于 2012-07-02T21:44:10.390 回答