【问题标题】:500 error handling in Spring MVCSpring MVC 中的 500 错误处理
【发布时间】:2023-03-19 16:16:01
【问题描述】:

我使用 hybris 开发了我的项目。我想在 500Error.jsp 中创建一些模板 但我无法处理 500 错误。接下来我无法获取 jsp 文件。

我收到了这个错误:

SEVERE: Servlet.service() for servlet DispatcherServlet threw exception
java.lang.NullPointerException

Aug 10, 2017 3:14:07 PM org.apache.catalina.core.StandardHostValve custom
SEVERE: Exception Processing ErrorPage[exceptionType=java.lang.Throwable, location=/serverError]
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException

在 web.xml 文件中

<error-page>
        <exception-type>java.lang.Throwable</exception-type>
        <location>/serverError</location>
</error-page>

在Controller.java下面的方法

@RequestMapping(value = "serverError", method = RequestMethod.GET)
    public String renderErrorPage(final Model model, HttpServletRequest httpRequest) throws CMSItemNotFoundException {

【问题讨论】:

  • 也许你在“serverError”的开头添加一个斜杠

标签: java spring jsp spring-mvc error-handling


【解决方案1】:

您需要像下面的示例一样使用@ControllerAdvice:

@ControllerAdvice
public class ControllerExceptionHandler {

  private static Logger log = LoggerFactory.getLogger(ControllerExceptionHandler.class);

  @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
  @ExceptionHandler(Exception.class)
  public void notFoundHandler() {
    log.debug("Item not found. HTTP 500 returned.");
  }

}

【讨论】:

    【解决方案2】:

    您能否在错误控制器中设置断点并按预期停止? 如果没有,您可以尝试创建一个异常处理程序,然后将消息转发到您的控制器。

    @ExceptionHandler(Exception.class)
    public String handleException(final Exception e) {
    
        return "forward:/serverError";
    }
    

    【讨论】:

      【解决方案3】:

      @java.nazif 请在 web.xml 中添加错误代码。

      <error-page>
          <error-code>500</error-code>
          <location>/jsps/500Error.jsp</location>
      </error-page>

      【讨论】:

      • 非常感谢@Pravin Abhale。我尝试了这个解决方案,但它还不足以解决问题。因为我希望 /jsps/500Error.jsp 不直接转到 jsp 文件.它必须进入控制器和requestMapping()
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2016-12-11
      • 2016-11-06
      相关资源
      最近更新 更多