Java 为什么我不能发送正确的服务器状态作为响应,而是得到一个“回复”;没有回应”;当我到达终点时?

Java 为什么我不能发送正确的服务器状态作为响应,而是得到一个“回复”;没有回应”;当我到达终点时?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在测试一个应该返回JSON的端点 效果很好。但当出现异常(如禁止)时,它应该返回正确的错误代码和消息 现在我是这样做的: @ResponseBody @GetMapping(produces = APPLICATION_JSON_UTF8_VALUE) public ResponseEntity getInfo() { try{ //..do something }catch(Exception e){ return new Response

我正在测试一个应该返回JSON的端点

效果很好。但当出现异常(如禁止)时,它应该返回正确的错误代码和消息

现在我是这样做的:

@ResponseBody
@GetMapping(produces = APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity getInfo() {
    try{
        //..do something
    }catch(Exception e){

        return new ResponseEntity<>("Error calculating the required information", null, HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
是的,我正在到达终点(我调试了它)

你知道为什么会有这种反应吗?
谢谢。

您需要更改方法标志

public ResponseEntity<Void> getInfo() {
public ResponseEntity getInfo(){
并且还可以使用更改返回类型

return new ResponseEntity<Void>(HttpStatus.INTERNAL_SERVER_ERROR);
返回新的响应属性(HttpStatus.INTERNAL\u SERVER\u错误);
如果要返回特定消息,则需要创建自定义异常类


您可以在github上的以下项目链接中找到一个示例:

您可以像这样更改代码

@ResponseBody
@GetMapping(produces = APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<String> getInfo() {
    try {
        //..do something
    } catch(Exception e) {

        return new ResponseEntity<>("Error calculating the required information", null, HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
@ResponseBody
@GetMapping(products=APPLICATION\uJSON\uUTF8\u值)
公共响应getInfo(){
试一试{
//做点什么
}捕获(例外e){
返回新的ResponseEntity(“计算所需信息时出错”,null,HttpStatus.INTERNAL_SERVER_Error);
}
}
响应代码的定义如下

public ResponseEntity(T body, MultiValueMap<String, String> headers, HttpStatus status) 
public ResponseEntity(T体、多值映射头、HttpStatus状态)
您必须匹配泛型类型


有趣的是,我编写了与您附加的代码相同的代码,并且运行良好。(在响应正文中返回了500个错误)

您找到原因了吗?我面临同样的问题,我无法理解为什么会发生这种情况。@jpganz18
public ResponseEntity(T body, MultiValueMap<String, String> headers, HttpStatus status)