问题标签 [controller-advice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
187 浏览

spring-boot - @ControlerAdvice 在 Spring Boot 中不起作用(最新)

我尝试使用 @ControllerAdvice 注释拦截自定义异常。

这是代码:

这是我的例外:

但是会返回默认实体响应。

0 投票
3 回答
84 浏览

spring - 如何正确抛出和检测此异常

我正在使用 @ControllerAdvice 来检测应用程序中引发的异常。

在创建类期间尝试抛出异常:

试图捕捉错误:

我想要的是上面指定的对象返回,但我在这里得到了这个废话:

我假设它无法检测到预期的异常,因为在它之前抛出了另一个异常,但这不是我想要的。

有什么建议吗?

0 投票
1 回答
474 浏览

spring - 如何在@ControllerAdvice 中测试异常处理

我的应用程序中目前有两个 ControllerAdvice,我应该将它们合并为一个。但是我需要在合并之前和之后测试它们,测试异常和控制器返回给我的对象。

我正在尝试使用 Mockito 进行 jUnit 测试,但似乎不可能在没有任何上下文、没有控制器等的情况下测试异常......

有谁知道我该如何继续实现我想要做的事情?

我也尝试手动抛出异常,但显然它没有被 ControllerAdvice 捕获。

所以基本上这就是我想要做的:手动抛出异常这个异常由我的ControllerAdvice处理检查返回的对象(代码和消息)

这是我拥有的代码示例:

最后我有良好的状态代码,但它不使用我的ControllerAdvice(我尝试使用调试器)

0 投票
1 回答
479 浏览

spring - 请求范围 bean 异常和 @ControllerAdvice

我有一个自定义 Spring BootAutoConfiguration类,我正在其中创建@RequestScop自定义类的 ed bean - Foo。在同一个AutoConfiguration类中,我正在创建一个全局异常处理程序的 bean,它是一个@ControllerAdvice. 所有这些类都打包为 jar,并在我的其他 Spring Boot Web 应用程序中用作依赖项。每当控制器方法中出现异常时,都会在我的全局异常处理程序中调用适当的异常处理程序,除非在 中出现异常时FooBeanCreationException会抛出 a 并且不会调用任何全局异常处理程序。我尝试@Order(Ordered.HIGHEST_PRECEDENCE)按照一些 SO 答案中的建议添加,但没有一个有效。是否可以在全局异常处理程序中处理此类请求范围的 bean 异常 - a @ControllerAdvice?非常感激。

编辑 这是我的AutoConfiguration课。(这是在另一个罐子里)

这是MyGlobalExceptionHandler(这是在另一个罐子里)

0 投票
1 回答
131 浏览

spring-boot - 控制器建议不通过执行使用 FileTooLargeException 注释的方法来处理 FileTooLargeException

我的休息控制器包含以下后映射:

ServiceExceptionn 是特定于我的应用程序的自定义异常。

控制器建议如下所示:

application.yml 包含以下属性:

如果我使用大小大于 2MB 的文件调用其余 api,那么我会遇到以下异常:

我在这里面临的问题是:控制器建议没有按预期工作。handleFileTooLargeException - 这个方法必须被执行,因为它被注释了 ExceptionHandler 提到的特定异常类型。但取而代之的是,控制进入控制器建议的处理方法。

无法理解我在这里缺少什么。

0 投票
1 回答
782 浏览

spring - Spring Boot 捕获多个异常并作为错误响应发送

我正在验证传入的 POST 请求,该请求将在验证请求数据后创建一个数据库实体。我正在尝试在单个请求中收集多个错误,并按照 JSON API 规范作为错误响应进行响应:

https://jsonapi.org/examples/#error-objects-multiple-errors

是否可以通过@ControllerAdvice. 当全局异常处理被启用@ControllerAdvice并抛出异常时,不会捕获下一个异常。

0 投票
2 回答
720 浏览

spring-boot - Spring boot:覆盖的handleMethodArgumentNotValid未执行

我正在验证休息端点的请求参数:

请求参数列表映射到BoundingBox. 在课堂BoundingBox上,我使用注解进行字段验证,例如@Max、@Min 等。

为了处理任何无效的请求参数,我将 ResponseEntityExceptionHandler.handleMethodArgumentNotValid方法重写为:

注释ControllerAdvice放置在处理程序类的顶部。@Valid 似乎可以工作,因为 request 没有通过并返回BAD_REQUEST,但handleMethodArgumentNotValid没有调用方法。

0 投票
1 回答
239 浏览

spring - 在 Spring ResponseBodyAdvice 中访问 ModelView 属性

对于我所有的 RestControllers 处理程序,它们都返回一个子类型MyResponseType,我想编写一个 SpringResponseBodyAdvice来操作基于 some 的响应@ModelAttribute。但是,我不知道如何访问ModelView这个地方。

不幸的是,由于我必须实现接口ResponseBodyAdvice,所以我不能有@ModelAttribute参数。

当然,我也可以使用拦截器。但是,响应已经写入,因此我只能操作MyResponseType实例的 JSON。

任何想法?

0 投票
0 回答
47 浏览

spring-boot - 在 Spring Boot 中处理控制建议中的过滤器异常

嗨,我有一个全局异常处理程序,如果发生异常,我会做一些事情。但是我有弹簧过滤器,弹簧过滤器无法在我的 globalexceptionhandler 中捕获。我在 stackoverflow 中阅读了类似的帖子,但仍然感到困惑。有没有办法在控制建议中捕获过滤器异常

0 投票
0 回答
128 浏览

java - 如果没有 HTTP 正文,如何使用 @ControllerAdvice?

我想@ControllerAdvice为所有控制器上的所有 HTTP 请求调用一个。不幸的是,它仅在请求中有 HTTP 正文时才会触发。如果不是,则完全忽略。handleEmptyBody()在这种情况下,春天不应该打电话吗?

编辑 所有控制器都带有注释@RestController

有任何想法吗?