问题标签 [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.
java - 如何集成具有依赖关系的测试@RestControllerAdvice?
我@RestController
在 Spring Boot 2.1 中有一个简单的@RestControllerAdvice
分配给它来处理异常,例如
我已将集成测试设置如下:
当我运行快乐路径测试时,一切正常,但是当我运行时,我得到了未注入的negativeTest
依赖错误。MyExceptionHandler.SomeComponent.dep
如您所见,我的集成测试WebMvcTest
用于向 Spring 告知上下文。
另请注意,我正在自动装配MyController
,因为我需要使用为某些测试场景ReflectionTestUtils
设置flag
值。
我什至添加了所有需要的依赖类@ContextConfiguration
,但无济于事。
如何解决此依赖问题以在此类设置中调用控制器建议?
另外,如何获取控制器建议发送的响应正文以检查其内容?
更新:
使用@SpringBootTest
and @AutoConfigureMockMvc
,我得到以下堆栈跟踪:
如果我添加MyController.class
到@SpringBootTest
,我会得到以下信息(406 状态来自哪里,并且 Eclipse 在这里行为不端):
java - 如何从 MethodArgumentNotValidException 类中提取字段名称和错误消息?
我正在使用javax.validation.Size
注释来执行字符串大小验证。
我正在使用全局异常处理程序将自定义异常抛出到客户端。
在我的自定义异常DataException
中,第二个参数是错误消息。我想将字段名称和有效大小约束设置为消息。
我试图从引发的异常中获取字段名称,但不是给我 name ,而是给我我在引发此异常的控制器中使用title
的参数名称。eventRequestBean
如何获取字段名称和设置的有效大小,以便创建自己的自定义异常?
java - 从@RestControllerAdvice 中的@ModelAttribute 中排除方法
我有以下控制器:
以及以下内容RestControllerAdvice
:
validateModel
正确验证getCar
and方法,addCar
但它也验证getCars
方法。该getCars
方法没有{model}
@PathVariable
,因此对该端点的请求将始终导致RuntimeException
.
有什么方法可以排除方法受到 a ControllerAdvice
andModelAttribute
组合的影响?
spring-boot - 如何在@ControllerAdvice 中打印控制器方法名称?
我浏览了链接:如何在 Spring MVC 中的 @controllerAdvice 或 @RestControllerAdvice 中找到控制器名称?很多次,但我希望在 @ControllerAdvice 类中获取控制器方法名。
这是我的 CustomHandler 类。
java - 如何将检查的异常从 CompletableFuture 传递给 ControllerAdvice
如何使 controllerAdvice 类捕获从 completablefutrue 引发的异常。在下面的代码中,我有一个checkId
引发检查异常的方法。我使用 completablefuture 调用此方法,并将检查的异常包装在 CompletionException 中。虽然我在控制器建议类中有一个处理程序方法,但它没有处理错误。
-
-
--
堆栈跟踪:
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 中显示我自己的错误页面。
这是简短的代码:
java - Spring ExceptionalHandler 的 Java 测试
我有一个带有控制器和服务的 springboot 项目。还有一个 GlobalExceptionHandler 像 -
有人可以告诉我如何在我的单元测试课上模拟这个吗
((ServletWebRequest)request).getRequest().getRequestURI()
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 到底是做什么的吗?
java - Spring Boot @ControllerAdvice / @Valid
我正在为 Spring Boot 中的异常处理开发示例演示应用程序。我正在尝试使用 @ControllerAdvice 进行异常处理。
我想处理验证器抛出的异常。它处理其他异常,但不处理 MethodArgumentNotValidException。
有关更多详细信息,以下是我正在学习的课程:
查询.java
错误响应.java
CustomExceptionHandler.java
要求