当我尝试在 Spring Boot 应用程序中将自定义错误传递给客户端时发生异常

2024-01-15

java.lang.IllegalStateException:提交响应后无法调用 sendError()

如上所述,我在响应 .sendError() 方法行中收到错误。我在网上搜索了4天。但我无法找出问题所在。这个问题的原因可能是什么?

我有一个自定义异常类。 在下面的代码中,catch 块成功捕获了我的自定义异常。但是当我尝试将其发送到客户端时,它返回上面提到的异常。

我已经尝试过了 解决方案1 ​​– 控制器级别@ExceptionHandler 解决方案 2 – HandlerExceptionResolver 解决方案 3 – @ControllerAdvice 解决方案 4 – ResponseStatusException

解决上述问题的方法。但对我不起作用:(

我已将错误代码和错误消息添加到响应正文中。然后我就可以成功得到错误了。但这不是我想要的方式。

@RequestMapping(value="/getMemberID/", method=RequestMethod.POST ,headers ="Accept=application/json")
public  ResponseMemberID getMemberID(@RequestBody RequestMemberID request,HttpServletResponse response, @Context HttpServletRequest _request ) throws Exception {

    Member_info memberinfo = new Member_info();
    ResponseMemberID _response =new ResponseMemberID();

    try {
          memberinfo = memberinfoservice.getMemberID(request.getPin(),request.getMsisdn());
          _response.setMember_id(memberinfo.getMember_id()); 

    }catch(MemberNotFoundException exp) {

                 response.sendError(exp.getErrorCode(), exp.getErrorMessage());
    } 

    return _response;
}

我需要使用上面的 sendError() 方法获取错误代码和错误消息作为 JSON 响应。异常成功到达 catch 块。


这里, 1)您需要为自定义异常添加错误处理程序 2)错误处理程序将抛出异​​常

一些有用的链接:处理Spring Hibernate SQL错误的推荐方法 https://stackoverflow.com/questions/50846360/recommended-way-of-dealing-with-spring-hibernate-sql-errors/50850529#50850529

Spring有没有更简单的异常处理技术? https://stackoverflow.com/questions/51008530/is-there-a-simpler-exception-handling-technique-for-spring/51008726#51008726

注意:此方法已经过测试,我正在我的应用程序中使用它。

@RestControllerAdvice
    @RequestMapping(produces = "application/json")
    public class DefaultExceptionHandler extends ResponseEntityExceptionHandler {


       @ExceptionHandler(MemberNotFoundException .class)
        @ResponseStatus(value = HttpStatus.CONFLICT)
        public Map<String, String> handleConstraintViolationException(ConstraintViolationException ex) {
         Map<String, String> response = new HashMap);
        // set your response
        return new ResponseEntity<>(response, ex.getStatus());
       }

    }

From, getMemberID, 消除try and catch block.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我尝试在 Spring Boot 应用程序中将自定义错误传递给客户端时发生异常 的相关文章

  • React Native 中循环 Json 并显示

    How do I go about looping the result i retrieved from Json render function console log this state list contents
  • Grails/GORM“符合”标准

    是否可以使用 GORM 标准执行 in 标准 我正在寻找与以下 SQL 等效的内容 select from Person where age in 20 21 22 如果可能的话 我想语法会是这样的 def results Person w
  • 在 JSON 对象中存储和发送原始文件数据

    我正在寻找一种方法来传输任何文件类型的原始文件数据和任何可能的内容 我的意思是文件和文件内容都是用户生成的 在 Backbone 前端中使用 xhr ajax 调用两种方式针对 Django 后端 编辑 也许问题仍然不清楚 如果您在 IDE
  • Twitter api 文本字段值被截断

    为什么文本字段值被截断以及如何获得完整的值 截至目前 我正在尝试获取如下所示的文本字段值 do if let responseObject try NSJSONSerialization JSONObjectWithData respons
  • 如何从单独的 Jars 加载 @Configuration 类

    我有一个 SpringBoot 主应用程序 以及一个单独的 Maven 模块项目 该项目编译为单独的 Jar 该模块有一个 Spring 配置类 注释为 Configuration 我想在主应用程序加载时加载它 显然 这并不是开箱即用的 只
  • Hibernate:hbm2ddl.auto=生产中更新?

    是否可以运行配置为 Hibernate 的应用程序hbm2ddl auto update在生产环境中更新数据库架构 不 这不安全 尽管 Hibernate 团队尽了最大努力 但您根本不能依赖自动更新生产中 编写您自己的补丁 与 DBA 一起
  • 使用除 SINGLE_TABLE 之外的任何其他 Hibernate 继承策略时 JVM 崩溃

    好吧 这可能不太可能 但还是这样吧 在Java JRE 1 6 0 26 b03 中我有两个类 SuperControl及其子类SubControl 它们都需要是持久对象 我正在使用 Hibernate Annotations 来实现这一点
  • Python:json_normalize pandas 系列给出 TypeError

    我在 pandas 系列中有数万行像这样的 json 片段df json IDs lotId 1 Id 123456 date 2009 04 17 bidsCount 2 IDs lotId 2 Id 123456 date 2009 0
  • 当请求输入无效时,控制器周围的 Spring AOP 不起作用

    我已经使用编写了一个请求 响应记录器 Around Around value execution com xyz example controller public Object logControllers ProceedingJoinP
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • Hibernate 挂起或引发延迟初始化,没有会话或会话已关闭

    我正在增强旧的 Spring Hibernate 应用程序 但我陷入困境 我有一种方法可以读取 3000 多行长的文件 每行都有一条记录 必须与数据库中的某些内容进行比较 然后必须将寄存器添加到数据库 多对多表 表和关系是 Branch h
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 创建一个 JSON 对象以在 Spring Boot 测试中发布

    我想编写基本测试来使用 JSON 负载在 users URL 上执行 POST 请求来创建用户 我找不到如何将新对象转换为 JSON 到目前为止有这么多 这显然是错误的 但解释了目的 Test public void createUser
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a

随机推荐