使用标题进行 配置阻塞后的返回值 时,一直不生效,最后发现
WebCallbackManager是sentinel-web-servlet包中的接口,而BlockExceptionHandler 是sentinel-spring-webmvc-adapter包中的
在最新版本中,尝试通过 实现 BlockExceptionHandler 接口,实现 handle 函数,实现该功能
@Component
public class ExceptionHandlerPage implements BlockExceptionHandler {
@Override
public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws Exception {
R error = R.error(BizCodeEnum.TO_MANY_REQUEST.getCode(), BizCodeEnum.TO_MANY_REQUEST.getMsg());
httpServletResponse.setCharacterEncoding("UTF-8");
httpServletResponse.setContentType("application/json");
httpServletResponse.getWriter().write(JSON.toJSONString(error));
}
}