问题标签 [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 回答
103 浏览

spring-boot - Unit Test for a Controller Advice without calling the controller

I'm trying to write a unit test for a controllerAdvice, all the example I saw in the net are for an integration test, that's mean they are calling their main Rest controller and I dont want to do in that way. here is the test i'm trying to write :

My issue is that the resolver.resolveException(this.servletRequest, this.servletResponse, null, ex) is returning null however it should not! any idea ?

0 投票
0 回答
81 浏览

java - 如何获取 MaxUploadSizeExceededException 的请求对象

我正在使用 spring boot 2 开发一个 RESTful api,并尝试将 yml 文件中设置的限制上传为servlet.multipart.max-file-size=2MB.

根据我的要求,上传的任何大小超过 2MB 的文件都需要使用请求信息 ( getUser()) 和异常插入到数据库中。我可以使用生成异常消息,@ExceptionHandler但我没有得到请求信息(getUser())。请指教。

我尝试使用 webRequest.setAttribute 在其余控制器上使用 WebRequest webRequest,但我在@ExceptionHandler.

我的控制器和控制器建议:

我无法获取来自请求控制器的 emailVO.getUser

0 投票
3 回答
9076 浏览

java - Spring boot Rest 以空主体响应我的 @ControllerAdvice 中覆盖的异常以外的异常

我有一个 @ControllerAdvice 扩展 ResponseEntityExceptionHandler 作为我尝试控制 API 调用工作流中引发的任何异常的标准响应。

没有控制器的建议。我得到了 spring 生成的基于 HTML 的通用响应,并带有正确的响应标头。但是当我添加我的@ControllerAdvice 时,Spring 不会以通用错误主体响应。正文为空且响应头正确

因此,现在,如果请求中缺少必需的参数,流程会完美地触发我的重写实现,并使用描述错误的 JSON 有效负载进行响应。但是,如果出现任何其他异常,例如 HttpMediaTypeNotAcceptableException,spring 会以空主体响应。

在我添加我的建议之前,spring 以通用错误响应进行响应。我是 Spring Boot 生态系统的新手。需要帮助了解这是否是预期行为,是否有更好的方法来实现集中错误处理。

0 投票
1 回答
448 浏览

java - 使用多个异常优化 Spring RestControllerAdvice

我有大约 20 到 30 种不同类型的不同异常,它们都在 Java 中扩展异常类。一个例子是:

}

另一个例子是:

}

还有很多。如您所见,大部分代码都是重复的,然后我使用 ControllerAdvice 之类的(我知道 ControllerAdvice 参数异常类中的代码应该是正确的):

所以我想知道我们是否有任何方法可以优化上述异常,而不是编写单个类做几乎相同的工作 n 次,但仍然想区分它们。谢谢你。

0 投票
0 回答
309 浏览

java - 为 servlet [dispatcherServlet] 提供错误 Servlet.service() 的自定义异常处理

我创建了一个自定义异常处理。我以为我已经成功了,因为它在 localhost 上显示了错误页面,并且在我使用邮递员时它提供了正确的信息。但是,在我的终端上,它给了我这个错误-> Servlet.service() for servlet [dispatcherServlet] 在路径 [] 的上下文中抛出异常 [请求处理失败;嵌套异常是 org.springframework.web.client.HttpClientErrorException$Conflict: 409 null] 的根本原因。

关于如何解决这个问题的任何建议?谢谢

(请注意,我有一个 Rest Controller 类和 Web 控制器类。)

0 投票
1 回答
998 浏览

java - MockMvc 和 @ControllerAdvice 在测试中不起作用

我正在测试我RestControllermockMvc. 我有一个全局RestExceptionHandler来解决所有异常。在我的RestController我抛出Exception RequestValidationException这样的自定义:

当我通过空请求时,它必须抛出 RequestValidationException(bindingResult)

但是当我开始测试时,它们会落在我抛出的那个地方Exception来解决它。

我尝试mockMvc像这样配置我:

但它没有帮助。我收到一个Exception带有消息的 insted json。

我的RequestValidationExceptionHandler

2)我的@ControllerAdvice

3)和ExceptionHandlerRegistry

错误消息: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is ru.filit.mvideo.mb2c.api.exceptions.RequestValidationException

更新 所以在与@MichaelMichailidis 讨论之后,我尝试这样做,我只是添加了一个带有所需bean 的内部@Configuration 类:

和我的测试通过。但是我不明白为什么在我添加@ControllerAdvice 之前测试在没有配置的情况下工作?

0 投票
1 回答
529 浏览

spring-boot - 如何在 Spring Boot 中使用 ControllerAdvice 获取完整的堆栈跟踪?

我将 @ControllerAdvice 用于我的 REST 服务。但是我无法获得完整的堆栈跟踪并定义发生异常的位置。

我的控制器建议:

如果发生异常,我只会收到:

WARN 72490 --- [nio-5054-exec-2] .mmaExceptionHandlerExceptionResolver:已解决 [java.lang.NullPointerException]

如何获得完整的堆栈跟踪?

0 投票
1 回答
22 浏览

spring - spring mvc:在非@Controller端点上应用@ModelAttribute

我已阅读有关使用 @ModelAttribute将参数全局注入模型的建议。我的理解是否正确,这种方法不会涵盖由例如<mvc:view-controller>,或form-login自定义登录页面呈现的视图?

如果是这样,有没有办法扩展这种机制以包含所有视图?

谢谢

0 投票
4 回答
8478 浏览

java - @ControllerAdvice 和 @ExceptionHandler 没有为我的 RestController 触发

为了在整个应用程序中进行统一的异常处理,我将错误处理与 Spring解决方案#3@ControllerAdvice一起使用,它与@ExceptionHandler.

春季版:4.3.22.RELEASE

Spring Boot 版本:1.5.19.RELEASE

这是一个 Spring Boot 应用程序,以下是我的包结构。

以下是我的 ControllerAdvice 代码,其中一个 Controller 抛出InvalidDataException,但相应的仍然@ExceptionHandler没有被调用。相反,我使用http 400Unexpected 'e'作为响应主体。

我查看了 SO 上的其他帖子以及他们提到使用等的其他论坛,@EnableWebMvc@ComponentScan没有任何帮助。有人可以帮我理解我错过了什么吗?

以下是我的Controller相应界面。

以下是我的代码片段GlobalExceptionHandler

0 投票
1 回答
6401 浏览

json - Spring Boot 控制器建议 - 如何返回 XML 而不是 JSON?

我有一个控制器建议类,但我似乎无法让它返回 XML,即使我使用了 @RequestMapping 注释。这是一个精简的示例。

请注意@RequestMapping(produces = MediaType.APPLICATION_XML_VALUE)休息控制器如何控制响应的形成方式。

PriceAvailabilityResponse这是上述代码块中可能出现的内容的示例。

下面是一个抛出错误的示例休息控制器方法

我已经为此代码编写了模型,以根据哪个端点访问微服务来返回 JSON 和 XML,这是绝对必要的。

不幸的是,当我找到/error_test路径时,我的响应总是以 JSON 格式出现。

在此处输入图像描述

如何强制响应为 XML?非常感谢您的宝贵时间。