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

java - 抛出异常时,Spring Boot 不显示自定义错误

我对 Java/Spring 领域相当陌生,我正在尝试在我的 Spring Boot 应用程序中使用 @ControllerAdvice。ControllerAdvice 捕获异常但不显示我的自定义响应。

以下是引发异常的RestController的快照

以下是@ControllerAdvice

其他类

我在使用POSTMAN时遇到的错误是

我在浏览器上得到的错误如下

任何想法/建议为什么会出现这种行为?我期待 ErrorResponse 类的 JSON 表示。

更新

在此处输入图像描述

0 投票
0 回答
931 浏览

java - 如何集成具有依赖关系的测试@RestControllerAdvice?

@RestController在 Spring Boot 2.1 中有一个简单的@RestControllerAdvice分配给它来处理异常,例如

我已将集成测试设置如下:

当我运行快乐路径测试时,一切正常,但是当我运行时,我得到了未注入的negativeTest依赖错误。MyExceptionHandler.SomeComponent.dep如您所见,我的集成测试WebMvcTest用于向 Spring 告知上下文。

另请注意,我正在自动装配MyController,因为我需要使用为某些测试场景ReflectionTestUtils设置flag值。

我什至添加了所有需要的依赖类@ContextConfiguration,但无济于事。

如何解决此依赖问题以在此类设置中调用控制器建议?

另外,如何获取控制器建议发送的响应正文以检查其内容?

更新:

使用@SpringBootTestand @AutoConfigureMockMvc,我得到以下堆栈跟踪:

如果我添加MyController.class@SpringBootTest,我会得到以下信息(406 状态来自哪里,并且 Eclipse 在这里行为不端):

0 投票
1 回答
1849 浏览

java - 如何从 MethodArgumentNotValidException 类中提取字段名称和错误消息?

我正在使用javax.validation.Size注释来执行字符串大小验证。

我正在使用全局异常处理程序将自定义异常抛出到客户端。

在我的自定义异常DataException中,第二个参数是错误消息。我想将字段名称和有效大小约束设置为消息。

我试图从引发的异常中获取字段名称,但不是给我 name ,而是给我我在引发此异常的控制器中使用title的参数名称。eventRequestBean

如何获取字段名称和设置的有效大小,以便创建自己的自定义异常?

0 投票
1 回答
425 浏览

java - 从@RestControllerAdvice 中的@ModelAttribute 中排除方法

我有以下控制器:

以及以下内容RestControllerAdvice

validateModel正确验证getCarand方法,addCar但它也验证getCars方法。该getCars方法没有{model} @PathVariable,因此对该端点的请求将始终导致RuntimeException.

有什么方法可以排除方法受到 a ControllerAdviceandModelAttribute组合的影响?

0 投票
2 回答
441 浏览

spring-boot - 如何在@ControllerAdvice 中打印控制器方法名称?

我浏览了链接:如何在 Spring MVC 中的 @controllerAdvice 或 @RestControllerAdvice 中找到控制器名称?很多次,但我希望在 @ControllerAdvice 类中获取控制器方法名。

这是我的 CustomHandler 类。

0 投票
1 回答
1096 浏览

java - 如何将检查的异常从 CompletableFuture 传递给 ControllerAdvice

如何使 controllerAdvice 类捕获从 completablefutrue 引发的异常。在下面的代码中,我有一个checkId引发检查异常的方法。我使用 completablefuture 调用此方法,并将检查的异常包装在 CompletionException 中。虽然我在控制器建议类中有一个处理程序方法,但它没有处理错误。

-

-

--

堆栈跟踪:

0 投票
0 回答
2421 浏览

spring-boot - 如何使用@ControllerAdvice 捕获 Spring boot 2 webflux 中的所有异常

我的应用程序是由 Spring Boot 2 webflux 和 thymeleaf 制作的,我想捕获所有异常并将错误呈现到自定义错误页面。

我使用@ControllerAdvice 和@ExceptionHandler 在一个中心位置捕获异常和处理错误,我只能处理在我的控制器中抛出的所有异常,但我无法捕获那些映射错误(内容协商和HTTP 映射错误),例如UnsupportedMediaTypeStatusException . 我搜索并发现这是一个已知问题(https://github.com/spring-projects/sprienter code here ng-framework/issues/21097#issuecomment-453468295)。

如果我使用WebMvc,就没有这种问题,所有的异常都可以被捕获。我的问题是如何捕获所有异常并在 webflux 中显示我自己的错误页面。

这是简短的代码:

0 投票
1 回答
1834 浏览

java - Spring ExceptionalHandler 的 Java 测试

我有一个带有控制器和服务的 springboot 项目。还有一个 GlobalExceptionHandler 像 -

有人可以告诉我如何在我的单元测试课上模拟这个吗 ((ServletWebRequest)request).getRequest().getRequestURI()

0 投票
0 回答
826 浏览

spring-boot - 为什么在 RESTServices 的情况下使用 @ResponseBody 和 @ControllerAdvice

我正在学习 Spring Boot 中的全局异常处理。我设计了一个用 @RestController 注释的控制器,它有一个抛出异常的控制器方法。我设计了另一个用@RestControllerAdvice/@ControllerAdvice 注释的名为GlobalExceptionHandling 的类。当使用@RestControllerAdvice 注释时,它可以正常工作并处理异常,但在使用@ControllerAdvice 注释时不能按预期工作。我正在分享我的代码和我在邮递员上得到的回复。

演示控制器:

GlobalExceptionHandler:(使用@RestControllerAdvice)

对邮递员的响应:
状态: 404 错误请求
响应正文: ArithmeticException:除以零错误
控制台:控制台上没有打印任何内容。

GlobalExceptionHandler:(使用@ControllerAdvice)

对邮递员的响应:
状态: 404 错误请求
响应正文: {“时间戳”:“2020-02-15T12:41:40.988+0000”,“状态”:404,“错误”:“未找到”,“消息”: “除以零错误”,“路径”:“/exception/arithmetic”}
控制台:控制台上没有打印任何内容。

你能解释一下@ResponseBody 到底是做什么的吗?

0 投票
2 回答
3586 浏览

java - Spring Boot @ControllerAdvice / @Valid

我正在为 Spring Boot 中的异常处理开发示例演示应用程序。我正在尝试使用 @ControllerAdvice 进行异常处理。

我想处理验证器抛出的异常。它处理其他异常,但不处理 MethodArgumentNotValidException。

有关更多详细信息,以下是我正在学习的课程:

查询.java

错误响应.java

CustomExceptionHandler.java

要求