小编clo*_*oze的帖子

Spring 控制器 - 显示 JSON 而不是 Whitelabel 错误页面(在浏览器中)

您好,有一个简单的 spring 控制器,在出现错误时返回 ResponseStatusException。

@RestController
@RequestMapping("/process")
public class ProcessWorkitemController {
    @Autowired MyService service;
    
    @GetMapping("/{id}")
    public ResponseEntity<?> findById(@PathVariable Long id) {
        Optional<MyObj> opt = service.getObj(id);
        opt.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Process id %s not found", id), null));
        
        return ResponseEntity.ok(opt.get());
    }
}
Run Code Online (Sandbox Code Playgroud)

如果使用 SoapUI 调用,则效果很好:它向我显示一个 Json,如下所示:

{
   "timestamp": "2021-01-20T10:59:48.082+0000",
   "status": 404,
   "error": "Not Found",
   "message": "Process id 1 not found",
   "path": "/workspace-manager/process/1"
}
Run Code Online (Sandbox Code Playgroud)

当我使用浏览器调用相同的服务时,它会显示带有我的自定义错误消息的白标签错误页面。

即使在浏览器上我也想要一个 JSON 作为响应,这可能吗?

提前致谢。

java spring-mvc spring-boot

4
推荐指数
1
解决办法
3817
查看次数

标签 统计

java ×1

spring-boot ×1

spring-mvc ×1