问题标签 [handlerexceptionresolver]
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 - MaxUploadSizeExceededException 不调用 Spring 中的异常处理方法
我正在使用 Spring 3.2.0。根据这个答案,我在带注释的控制器中有相同的方法,它实现了HandlerExceptionResolver
接口,例如,
Spring 配置包括,
当文件大小超过时,应该调用前面的方法,它应该自动处理异常,但它根本不会发生。resolveException()
即使发生异常,也不会调用该方法。处理这个异常的方法是什么?我错过了什么吗?
此处也指定了相同的内容。我不确定为什么它在我的情况下不起作用。
我已经尝试了以下方法,@ControllerAdvice
但它也没有奏效。
我也试图把冗长的 - Exception
。
ResponseEntity()
在任何情况下都不会调用该方法。
一般来说,如果可能的话,我想按控制器基础(控制器级别)处理这个异常。为此,一个@ExceptionHandler
带注释的方法应该只对那个特定的控制器有效,而不是对整个应用程序全局有效,因为我的应用程序中只有几个网页处理文件上传。当这个异常发生时,我只想在当前页面显示一个用户友好的错误信息,而不是重定向到web.xml
文件中配置的错误页面。如果这甚至不可行,那么无论如何都应该处理这个异常,而不需要我刚才表达的任何自定义要求。
这两种方法都不适合我。我找不到更多关于处理这个异常的信息。它是否需要在 XML 文件中的某处或其他地方进行额外配置?
抛出异常后我得到的内容可以在以下快照中看到。
java - 在 Spring HandlerExceptionResolver 中抑制 strack 跟踪打印
我有这个处理程序:
如果未启用日志调试级别,我不想将堆栈跟踪打印到 jvm sterr,但是我因此在此处理程序之后输出堆栈跟踪...你能告诉我为什么吗?
调试我看到 log.isDebugEnabled() 在我的测试中是正确的错误
spring - 如何在 Spring 中处理 Tomcat 的 MaxUploadSizeExceededException?
我对此进行了一些研究,但结果相互矛盾。为了处理这个错误,有人说我需要HandlerExceptionResolver
在我的一个控制器中实现。
以下是一些链接:
- 如何处理 MaxUploadSizeExceededException
- 使用 Spring MVC 处理 MaxUploadSizeExceededException
- http://www.raistudies.com/spring/spring-mvc/file-upload-spring-mvc-annotation/
另一方面,其他人说这种方法是徒劳的,因为Exception
它发生在请求处理流程之外:
- http://forum.spring.io/forum/spring-projects/web/124409-handling-maxuploadsizeexceededexception-in-spring(线程中的第二张海报)
- MaxUploadSizeExceededException 不调用 Spring 中的异常处理方法
我已经尝试了上述解决方案,但它们对我不起作用。正如预期的那样,这似乎Exception
发生在 Spring 之外。即使使用 . 我也无法捕捉到这一点HandlerExceptionResolver
。
java - 在 Spring 4.2 中设置 throwExceptionIfNoHandlerFound 无效。*
设置throwExceptionIfNoHandlerFound
在 Spring 4.2.2 中无效。这对我很重要,因为我必须以 JSON 格式发送所有响应。
我throwExceptionIfNoHandlerFound
在我的AppInitializer中设置如下:
它似乎有效,因为DispatcherServlet#noHandlerFound像预期的那样抛出异常:
但是随后(这非常令人困惑!)每个异常都被捕获并解决为错误视图。所以不可能NoHandlerFoundException
通过使用Spring来处理 -@ExceptionHandler
问题:
我敢肯定,这是一个非常好的和有用的功能,但是有没有办法检测 404 错误来发送自定义响应而不是默认的 html 错误页面?
spring - Spring:捕获从 AccessDecisionManager 抛出的异常 - 不是来自控制器
将 Spring (4.2.4) 与 MVC (4.2.4) 和 Security (4.0.3) 一起使用。我已经实现了一个 AccessDecisionManager 并且在我的决定方法中我抛出了一个异常:
我既不能抓住“ SessionCompanyNotRoleTableCompanyException
”也不能AccessDeniedException
。我试过使用全局异常处理程序:
我什至创建了 ExceptionResolver 类,例如:
...并让它们在我的 web-config-class 中初始化,例如:
这些工作,即只有从控制器抛出异常时才会捕获异常。但不是decide
来自AccessDecisionManager
.
我应该如何以及如何实现可以在控制器外部(之前)捕获这些的东西?
编辑(添加SessionCompanyNotRoleTableCompanyException
以向您显示其定义):
spring - HandlerExceptionResolver, MaxUploadSizeExceededException - 上传继续并且错误没有立即返回
我正在使用 Spring 3.1.1。我有一个文件上传功能并实现了 HandlerExceptionResolver 来处理文件大小限制。我已经在 spring mvc xml 中配置了“maxUploadSize”属性的大小。我的应用程序使用带有开放 ID 的弹簧安全性。
我在该上传控制器的 resolveException() 中使用下面的代码。RestResponse 是一个带有错误消息和状态的 pojo
我可以从日志中看到,resolveException() 被调用,但是 json 响应没有显示在 rest api 客户端/浏览器中。我可以在日志中看到异常(最大上传大小超过 10485760 字节;嵌套异常是 org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:请求被拒绝,因为它的大小(30611515)超过了配置的最大值(10485760))上传后立即,但上传仍在继续,一段时间后,浏览器中会显示 json 错误消息(如上所示)。
我确实在 stackoverflow 和其他门户中检查了这个问题,但找不到为什么它没有显示或响应返回到 UI。
spring - 无法实例化 [org.springframework.web.servlet.HandlerExceptionResolver];映射的模棱两可的 @ExceptionHandler 方法
我的GlobalExceptionHandlerController类:
我收到此错误:
感谢您的任何建议..
java - 在 spring 中自定义 ExceptionResolver 时出现意外行为
通过spring框架的文档了解了spring应用的自定义异常处理机制。根据文档,据说spring提供了一些默认的异常解析器。
SimpleMappingExceptionResolver
异常类名称和错误视图名称之间的映射。对于在浏览器应用程序中呈现错误页面很有用。
DefaultHandlerExceptionResolver
解决 Spring MVC 引发的异常并将它们映射到 HTTP 状态代码。另请参阅替代 ResponseEntityExceptionHandler 和 REST API 异常。
ResponseStatusExceptionResolver
使用 @ResponseStatus 注释解决异常,并根据注释中的值将它们映射到 HTTP 状态代码。
异常处理程序异常解析器
通过在@Controller 或@ControllerAdvice 类中调用@ExceptionHandler 方法来解决异常。请参阅@ExceptionHandler 方法。
但在我的要求中,我不想要所有这些解析器的支持,我只想让 ExceptionHandlerExceptionResolver 处理我的 Spring 应用程序中的异常。因此,我在 DispatcherServlet 中添加了以下配置。
DispatcherServlet相关配置。
在我的 Bean 配置 java 类中,我创建了以下 bean。
在文档中,指出
/** * 设置是否检测此 servlet 上下文中的所有 HandlerExceptionResolver bean。否则,* 只需要一个名为“handlerExceptionResolver”的 bean。*
默认为“真”。如果您希望此 servlet 使用单个 * HandlerExceptionResolver,请将其关闭,尽管在上下文中定义了多个 HandlerExceptionResolver bean。*/
但即使在所有这些配置之后,我看到 HTML 错误页面而不是 JSON 错误响应。
示例 ExceptionHandler 方法。
我做错了什么?我只需要在整个 Spring 应用程序中支持 ExceptionHandlerExceptionResolver 即可保持一致性。
spring-boot - @ControllerAdvice 中的 Spring-boot 处理 NoHandlerException
我想在 Springboot 应用程序中处理 NoHandlerException 并返回自定义错误消息。我将以下内容添加到我的 application.properties 并尝试覆盖错误消息。
错误没有命中 @ControllerAdvice... 它在 defaulthandlerexceptionresolver 中处理。有任何想法吗?
java - 组件为 HandlerExceptionResolver 扫描一个类
我有一个 HandlerExceptionResolver 类
我被告知需要对包进行组件扫描,我该怎么做?