问题标签 [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 投票
2 回答
454 浏览

spring-boot - @ControllerAdvice 在 Spring Boot 中永远不会被触发

我正在尝试在我的 Spring Boot 应用程序中为所有类型的 RestClientResponseException 创建自己的自定义响应

控制器类抛出的自定义异常:

我的 ExceptionHandler 类是这样的:

我已经尝试了所有可能的情况,例如:

抛出异常并调用带有@ExceptionHandler注解的方法后似乎没有任何拦截

现在卡住了一段时间,需要一些帮助。非常感谢您对此的帮助。

0 投票
1 回答
1466 浏览

spring - @ControllerAdvice 不工作 Spring 5.1.6

我正在尝试使用 Kotlin 在 Spring 中实现错误处理程序,但看起来应用程序无法识别它:我总是得到/error页面并且未处理异常。

@EnableWebMvc,在其他类似问题中建议,对我不起作用。

这是我的实际代码:

以下是我的@RestController

UserEntity如果邮件不是唯一的,则抛出异常:

我究竟做错了什么?我展示的文件共享同一个包。

编辑:以下是 Spring LOG 上的堆栈跟踪

0 投票
1 回答
643 浏览

spring - Spring-boot Rest :使用 ControllerAdvice 但保留默认处理程序

我的基本需求是捕获用户定义的异常并返回通用响应。为此,我将@ControllerAdvice 与@ExceptionHandler 一起使用。请参阅下面的示例

PersonNotFoundException 按预期处理。但是其他异常默认处理程序消失了,只返回没有正文的 Http 代码。显然,这是扩展 ResponseEntityExceptionHandler 时的预期行为。我可以覆盖其他默认异常,但这并不理想。使用通用的 Exception.class 处理程序将迫使我为所有这些返回一个 HTTP 代码。

所以我正在寻找一种方法来在 ControllerAdvice 或类似中全局处理我自己的异常,而不必覆盖默认异常处理程序

谢谢

0 投票
2 回答
433 浏览

java - 如果我的库也可能有带有我不知道的订单注释的 ControllerAdvices,我应该在 ControllerAdvice 上使用什么订单值?

我有一个 Spring 4 应用程序,其中包含多个用 @Order(someValue) 注释的 ControllerAdvice。此外,我在我的一个外部库中发现了一个 ControllerAdvice,它也用@Order(someValue) 进行了注释。

我的理解是,当控制器抛出异常时,ControllerAdvices 的顺序决定了在 ControllerAdvices 中搜索该特定异常的顺序。我现在认为在我的外部库中也可能有其他带有 @Order 注释的 ControllerAdvices。但是,我无法下载所有库并搜索所有 ControllerAdvices 并检查它们的 Order 值。

如果我希望它在其他 ControllerAdvice 之前捕获异常,我如何知道在特定 ControllerAdvice 上放置什么 Order 值?我应该为我的用例使用不同的方法吗?

请参阅下面的代码。

我希望 ExceptionHandlerControllerTwo 在 ExceptionHandlerControllerOne 之后和 ExceptionHandlerControllerThree 之前捕获异常。

我为 ExceptionHandlerControllerTwo 尝试了不同的 Order 值。数字 1 到 90 似乎以我想要的方式捕获异常。我的外部库中可能还有其他我不知道的 ControllerAdvice。

在我的应用程序中:

在外部库中:

0 投票
1 回答
140 浏览

spring - 控制建议如何捕获异常

我试图了解 ControllerAdvice 在 SpringBoot 中的工作方式。建议每个应用程序应该有一个 ControllerAdvice。但我的问题是这个 ControllerAdvice 如何与控制器相关联并捕获异常。那么基本上什么是底层?

0 投票
3 回答
1453 浏览

java - ResponseEntityExceptionHandler 的 Spring 依赖项

我无法正确导入ResponseEntityExceptionHandler

我的 pom xml 文件中缺少什么?

0 投票
1 回答
61 浏览

java - 如何捕获 ResponseEntityExceptionHandler 的响应以创建 JWE 加密

我有基于 springboot 的宁静网络服务。我有 CryptoResponseBodyAdvice 来捕获来自控制器的响应并从响应正文中创建 JWE 并将 JWE 作为 API 响应发送。 公共类 CryptoResponseBodyAdvice 实现 ResponseBodyAdvice

当一些异常发生并且请求到达异常解析器时,麻烦就来了。在这种异常情况下,响应不受CryptoResponseBodyAdvice 公共类 ExceptionResolver 扩展 ResponseEntityExceptionHandler的干扰

您能否建议哪种 ControllerAdvice 或其他东西可以帮助我捕获来自 ResponseEntityExceptionHandler 的响应,以便我可以从中创建 JWE。

0 投票
0 回答
342 浏览

java - ControllerAdvice 没有捕捉到 BindingResult 错误

我正在尝试覆盖 BindingResult 中的默认错误消息。我实现了这样的控制器建议

和我的控制器

和测试用例

我的问题是如何获取 bindingResult 默认错误消息?我想测试验证输入字段时收到的错误消息。

0 投票
0 回答
114 浏览

spring-boot - @ControllerAdvice 没有捕获 MySQLIntegrityConstraintViolationException

我正在制作一个附加了 MySQL 数据库的 Spring Boot 应用程序。

我已经在用户表中将用户标记为唯一,当我尝试使用现有用户名添加新用户时,数据库会抛出MySQLIntegrityConstraintViolationException 。

有没有办法让 ControllerAdvice 处理这个异常?我试着像这样制作处理程序:

但它不起作用。

0 投票
0 回答
341 浏览

java - 使用 ControllerAdvice 的 Spring Boot REST CustomException 未显示在日志或标准输出中

在使用 Java 1.8、lombok 和 Spring Boot 2.1.5.RELEASE 的项目中,创建了一个自定义异常,该异常未显示在我的日志文件或标准输出中的任何位置。


pom.xml:


休息控制器:


产品未找到异常:


控制器建议:

当我点击我的 REST 端点时:

它返回一个 HTTP 404 - 它应该。

grep -rnw logs.log -e 'ERROR'但是我在我的logs.log(使用)文件和/或标准输出中的任何地方都没有看到错误?

另外,试过了ProductNotException extend RuntimeException,还是不行。。。

我可能做错了什么?