当前位置: 首页 > 面试题库 >

修改来自Spring Boot Rest Controller的默认JSON错误响应

龙飞文
2023-03-14
问题内容

当前,来自spring boot的错误响应包含如下标准内容:

{
   "timestamp" : 1426615606,
   "exception" : "org.springframework.web.bind.MissingServletRequestParameterException",
   "status" : 400,
   "error" : "Bad Request",
   "path" : "/welcome",
   "message" : "Required String parameter 'name' is not present"
}

我正在寻找一种方法来消除响应中的“ exception”属性。有没有办法做到这一点?


问题答案:

如有关错误处理的文档中所述,您可以提供自己的bean,该bean实施ErrorAttributes以控制内容。

一个简单的方法就是继承DefaultErrorAttributes。例如:

@Bean
public ErrorAttributes errorAttributes() {
    return new DefaultErrorAttributes() {
        @Override
        public Map<String, Object> getErrorAttributes(RequestAttributes requestAttributes, boolean includeStackTrace) {
            Map<String, Object> errorAttributes = super.getErrorAttributes(requestAttributes, includeStackTrace);
            // Customize the default entries in errorAttributes to suit your needs
            return errorAttributes;
        }

   };
}


 类似资料:
  • 当通过URL调用我的Web应用程序中不存在的项目时,Spring会使用JSON响应,其中包含(时间、状态、错误、消息、路径)等数据。所以,我需要更改这个JSON的结构,特别是我需要删除路径。我该怎么做?我应该在我的项目中在哪里实现异常的自定义?向大家问好! json响应修改

  • 我有一个REST控制器,它可以返回如下产品列表: 电流输出 为了让我们的JS网格库能够正常工作,我需要修改响应,使其看起来像: 期望输出 控制器 有没有一种简单的方法可以使用本地Spring库修改JSON响应?

  • 问题内容: 我有一个需要修改数据库表中列默认值的要求。该表已经是数据库中的现有表,并且当前该列的默认值为NULL。现在,如果将新的默认值添加到此列,如果我是正确的话,它将列的所有现有NULL更新为新的DEfault值。有没有一种方法可以不执行此操作,但仍在列上设置新的默认值。我的意思是我不想更新现有的NULL,并希望它们保留为NULL。 在这方面的任何帮助,不胜感激。谢谢 问题答案: 您对将会发生

  • Spring Boot默认情况下返回一个满足我开箱即用需求的异常响应正文: 但是,我希望为应用程序引发的不同类型的异常自定义响应代码。有些异常不是我自己的,所以我不能在异常类上添加注释。我尝试使用方法和,但这是覆盖响应正文,我不希望发生这种情况。例如,我希望将映射为返回状态代码404。

  • 默认情况下,Tomcat配置的默认端口是8080。这就是为什么所有已部署的Web应用程序都可以通过URL访问的原因:http://localhost:8080/yourapp。如果希望应该在80端口上运行,则需要将默认端口8080更改为80,这是HTTP连接器的默认端口。 要更改此端口,请打开并找到以下内容: 更改为以下内容: 修改后,您可以使用"http://localhost/"来访问您的应用

  • 我从NPM收到了一个EACCES错误,所以我按照以下指示通过更改默认目录来修复它:https://docs.npmjs.com/getting-started/fixing-npm-permissions使用他们在最后给出的测试,我在全局范围内安装了jshint,没有任何错误。 然而,当我尝试构建一个角度项目时 我犯了很多错误,第一个是 然后,我按照以下说明进行操作:错误:EACCES:权限被拒绝