Spring MVC异常处理程序不适用于非注释控制器

时间:2019-05-07 02:40:30

标签: spring spring-mvc exception

目前,我有两种方法可以在应用程序中创建控制器。

一个正在使用@Controller,如下所示

@Controller
@RequestMapping(value = "/2")
public class TestController
{

    @RequestMapping(value = "/test2", method = { RequestMethod.GET })
    @ResponseBody
    public String request2 (HttpServletRequest req)

    {
        throw new RuntimeException();

    }

其他一些控制器实现org.springframework.web.servlet.mvc.Controller(旧版代码)

@Component
public class Test2Controller implements Controller
{
    @Override
    public ModelAndView handleRequest (HttpServletRequest request, HttpServletResponse response)
            throws Exception
    {
        throw new RuntimeException();
    }
}

这两种控制器都在相同的dispatcher-servlet.xml下,并且以前可以正常工作。但是,当我想为所有控制器设置全局异常处理程序时。仅@Controller有效。是否有任何额外的配置来使两种类型的控制器都可以与Spring MVC异常处理程序一起使用?

@ControllerAdvice
public class GlobalExceptionHandler
{

    @ExceptionHandler({ Throwable.class })
    public ResponseEntity handleException (Throwable e)
    {
        e.printStackTrace();
    }
```

0 个答案:

没有答案