问题标签 [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.
spring-boot - @ControlerAdvice 在 Spring Boot 中不起作用(最新)
我尝试使用 @ControllerAdvice 注释拦截自定义异常。
这是代码:
这是我的例外:
但是会返回默认实体响应。
spring - 如何正确抛出和检测此异常
我正在使用 @ControllerAdvice 来检测应用程序中引发的异常。
在创建类期间尝试抛出异常:
试图捕捉错误:
我想要的是上面指定的对象返回,但我在这里得到了这个废话:
我假设它无法检测到预期的异常,因为在它之前抛出了另一个异常,但这不是我想要的。
有什么建议吗?
spring - 如何在@ControllerAdvice 中测试异常处理
我的应用程序中目前有两个 ControllerAdvice,我应该将它们合并为一个。但是我需要在合并之前和之后测试它们,测试异常和控制器返回给我的对象。
我正在尝试使用 Mockito 进行 jUnit 测试,但似乎不可能在没有任何上下文、没有控制器等的情况下测试异常......
有谁知道我该如何继续实现我想要做的事情?
我也尝试手动抛出异常,但显然它没有被 ControllerAdvice 捕获。
所以基本上这就是我想要做的:手动抛出异常这个异常由我的ControllerAdvice处理检查返回的对象(代码和消息)
这是我拥有的代码示例:
最后我有良好的状态代码,但它不使用我的ControllerAdvice
(我尝试使用调试器)
spring - 请求范围 bean 异常和 @ControllerAdvice
我有一个自定义 Spring BootAutoConfiguration
类,我正在其中创建@RequestScop
自定义类的 ed bean - Foo
。在同一个AutoConfiguration
类中,我正在创建一个全局异常处理程序的 bean,它是一个@ControllerAdvice
. 所有这些类都打包为 jar,并在我的其他 Spring Boot Web 应用程序中用作依赖项。每当控制器方法中出现异常时,都会在我的全局异常处理程序中调用适当的异常处理程序,除非在 中出现异常时Foo
,BeanCreationException
会抛出 a 并且不会调用任何全局异常处理程序。我尝试@Order(Ordered.HIGHEST_PRECEDENCE)
按照一些 SO 答案中的建议添加,但没有一个有效。是否可以在全局异常处理程序中处理此类请求范围的 bean 异常 - a @ControllerAdvice
?非常感激。
编辑
这是我的AutoConfiguration
课。(这是在另一个罐子里)
这是MyGlobalExceptionHandler
(这是在另一个罐子里)
spring-boot - 控制器建议不通过执行使用 FileTooLargeException 注释的方法来处理 FileTooLargeException
我的休息控制器包含以下后映射:
ServiceExceptionn 是特定于我的应用程序的自定义异常。
控制器建议如下所示:
application.yml 包含以下属性:
如果我使用大小大于 2MB 的文件调用其余 api,那么我会遇到以下异常:
我在这里面临的问题是:控制器建议没有按预期工作。handleFileTooLargeException - 这个方法必须被执行,因为它被注释了 ExceptionHandler 提到的特定异常类型。但取而代之的是,控制进入控制器建议的处理方法。
无法理解我在这里缺少什么。
spring - Spring Boot 捕获多个异常并作为错误响应发送
我正在验证传入的 POST 请求,该请求将在验证请求数据后创建一个数据库实体。我正在尝试在单个请求中收集多个错误,并按照 JSON API 规范作为错误响应进行响应:
https://jsonapi.org/examples/#error-objects-multiple-errors
是否可以通过@ControllerAdvice
. 当全局异常处理被启用@ControllerAdvice
并抛出异常时,不会捕获下一个异常。
spring-boot - Spring boot:覆盖的handleMethodArgumentNotValid未执行
我正在验证休息端点的请求参数:
请求参数列表映射到BoundingBox
. 在课堂BoundingBox
上,我使用注解进行字段验证,例如@Max、@Min 等。
为了处理任何无效的请求参数,我将
ResponseEntityExceptionHandler.handleMethodArgumentNotValid
方法重写为:
注释ControllerAdvice
放置在处理程序类的顶部。@Valid 似乎可以工作,因为 request 没有通过并返回BAD_REQUEST
,但handleMethodArgumentNotValid
没有调用方法。
spring - 在 Spring ResponseBodyAdvice 中访问 ModelView 属性
对于我所有的 RestControllers 处理程序,它们都返回一个子类型MyResponseType
,我想编写一个 SpringResponseBodyAdvice
来操作基于 some 的响应@ModelAttribute
。但是,我不知道如何访问ModelView
这个地方。
不幸的是,由于我必须实现接口ResponseBodyAdvice
,所以我不能有@ModelAttribute
参数。
当然,我也可以使用拦截器。但是,响应已经写入,因此我只能操作MyResponseType
实例的 JSON。
任何想法?
spring-boot - 在 Spring Boot 中处理控制建议中的过滤器异常
嗨,我有一个全局异常处理程序,如果发生异常,我会做一些事情。但是我有弹簧过滤器,弹簧过滤器无法在我的 globalexceptionhandler 中捕获。我在 stackoverflow 中阅读了类似的帖子,但仍然感到困惑。有没有办法在控制建议中捕获过滤器异常
java - 如果没有 HTTP 正文,如何使用 @ControllerAdvice?
我想@ControllerAdvice
为所有控制器上的所有 HTTP 请求调用一个。不幸的是,它仅在请求中有 HTTP 正文时才会触发。如果不是,则完全忽略。handleEmptyBody()
在这种情况下,春天不应该打电话吗?
编辑
所有控制器都带有注释@RestController
。
有任何想法吗?