Java 为什么我不能发送正确的服务器状态作为响应,而是得到一个“回复”;没有回应”;当我到达终点时?
我正在测试一个应该返回JSON的端点 效果很好。但当出现异常(如禁止)时,它应该返回正确的错误代码和消息 现在我是这样做的: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
@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)