问题标签 [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 - 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 ?
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
java - Spring boot Rest 以空主体响应我的 @ControllerAdvice 中覆盖的异常以外的异常
我有一个 @ControllerAdvice 扩展 ResponseEntityExceptionHandler 作为我尝试控制 API 调用工作流中引发的任何异常的标准响应。
没有控制器的建议。我得到了 spring 生成的基于 HTML 的通用响应,并带有正确的响应标头。但是当我添加我的@ControllerAdvice 时,Spring 不会以通用错误主体响应。正文为空且响应头正确
因此,现在,如果请求中缺少必需的参数,流程会完美地触发我的重写实现,并使用描述错误的 JSON 有效负载进行响应。但是,如果出现任何其他异常,例如 HttpMediaTypeNotAcceptableException,spring 会以空主体响应。
在我添加我的建议之前,spring 以通用错误响应进行响应。我是 Spring Boot 生态系统的新手。需要帮助了解这是否是预期行为,是否有更好的方法来实现集中错误处理。
java - 使用多个异常优化 Spring RestControllerAdvice
我有大约 20 到 30 种不同类型的不同异常,它们都在 Java 中扩展异常类。一个例子是:
}
另一个例子是:
}
还有很多。如您所见,大部分代码都是重复的,然后我使用 ControllerAdvice 之类的(我知道 ControllerAdvice 参数异常类中的代码应该是正确的):
所以我想知道我们是否有任何方法可以优化上述异常,而不是编写单个类做几乎相同的工作 n 次,但仍然想区分它们。谢谢你。
java - 为 servlet [dispatcherServlet] 提供错误 Servlet.service() 的自定义异常处理
我创建了一个自定义异常处理。我以为我已经成功了,因为它在 localhost 上显示了错误页面,并且在我使用邮递员时它提供了正确的信息。但是,在我的终端上,它给了我这个错误-> Servlet.service() for servlet [dispatcherServlet] 在路径 [] 的上下文中抛出异常 [请求处理失败;嵌套异常是 org.springframework.web.client.HttpClientErrorException$Conflict: 409 null] 的根本原因。
关于如何解决这个问题的任何建议?谢谢
(请注意,我有一个 Rest Controller 类和 Web 控制器类。)
java - MockMvc 和 @ControllerAdvice 在测试中不起作用
我正在测试我RestController
的mockMvc
. 我有一个全局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 之前测试在没有配置的情况下工作?
spring-boot - 如何在 Spring Boot 中使用 ControllerAdvice 获取完整的堆栈跟踪?
我将 @ControllerAdvice 用于我的 REST 服务。但是我无法获得完整的堆栈跟踪并定义发生异常的位置。
我的控制器建议:
如果发生异常,我只会收到:
WARN 72490 --- [nio-5054-exec-2] .mmaExceptionHandlerExceptionResolver:已解决 [java.lang.NullPointerException]
如何获得完整的堆栈跟踪?
spring - spring mvc:在非@Controller端点上应用@ModelAttribute
我已阅读有关使用 @ModelAttribute将参数全局注入模型的建议。我的理解是否正确,这种方法不会涵盖由例如<mvc:view-controller>
,或form-login
自定义登录页面呈现的视图?
如果是这样,有没有办法扩展这种机制以包含所有视图?
谢谢
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
json - Spring Boot 控制器建议 - 如何返回 XML 而不是 JSON?
我有一个控制器建议类,但我似乎无法让它返回 XML,即使我使用了 @RequestMapping 注释。这是一个精简的示例。
请注意@RequestMapping(produces = MediaType.APPLICATION_XML_VALUE)
休息控制器如何控制响应的形成方式。
PriceAvailabilityResponse
这是上述代码块中可能出现的内容的示例。
下面是一个抛出错误的示例休息控制器方法
我已经为此代码编写了模型,以根据哪个端点访问微服务来返回 JSON 和 XML,这是绝对必要的。
不幸的是,当我找到/error_test
路径时,我的响应总是以 JSON 格式出现。
如何强制响应为 XML?非常感谢您的宝贵时间。