首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过Spring Boot获得ObjectOptimisticLockingFailureException的409?

如何通过Spring Boot获得ObjectOptimisticLockingFailureException的409?
EN

Stack Overflow用户
提问于 2020-08-15 02:17:01
回答 2查看 227关注 0票数 0

我知道Spring Boot会在error/409.html中为一个异常呈现一个胸腺叶模板,默认情况下会导致状态码409冲突。但是,默认情况下,ObjectOptimisticLockingFailureException似乎给出了一个500服务器错误。

我能够处理这个异常,并使用如下的@ControllerAdvice“手动”重定向到error/409.html模板:

代码语言:javascript
运行
复制
@ControllerAdvice
public class GlobalControllerAdvice {

    @ResponseStatus(HttpStatus.CONFLICT)
    @ExceptionHandler({DataIntegrityViolationException.class, ObjectOptimisticLockingFailureException.class})
    public ModelAndView handleConflict(HttpServletRequest request, Exception e) {
        ModelAndView result = new ModelAndView("error/409");
        result.addObject("url", request.getRequestURL());
        return result;
    }
}

因为ObjectOptimisticLockingFailureException不是我自己代码的一部分,所以我不能用@ResponseStatus(HttpStatus.CONFLICT)注释它,使其具有409。

是否可以将ObjectOptimisticLockingFailureException映射到409,并对Spring Boot中的错误代码使用默认的错误模板机制?

EN

Stack Overflow用户

发布于 2020-08-16 08:38:52

这可能行得通

代码语言:javascript
运行
复制
    @Bean(name="simpleMappingExceptionResolver")
    public SimpleMappingExceptionResolver
                  createSimpleMappingExceptionResolver() {
    SimpleMappingExceptionResolver r =
                new SimpleMappingExceptionResolver();

    Properties mappings = new Properties();
    mappings.setProperty("ObjectOptimisticLockingFailureException", "error/409");


    r.setExceptionMappings(mappings);
    return r;
  }
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63418088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档