最近,前端nginx的日志一直在报一些URL的请求后端响应是500状态码,于是缓存其结果,可以看到一直是报一个 javax.servlet.ServletException: Could not resolve view with name 'xxxx'in servlet with name 'Spring MVC Dispatcher Servlet ‘的异常。
分析这些报这个异常的的URL,规则都是/xxx/{xxx},报错的URL都是类似于 /xxx/xxx.jpg之类的跟着后缀的,我们的资源内容中也就是这个路由是对应的是没有这个jpg的资源的,也就是说自然会是404,但是404竟然也报这个异常和500错误码。
看了springmvc关于这个异常的出处,很明显的是View为null,而view是由resolveViewName获得的。
protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception {
// Determine locale for request and apply it to the response.
Locale locale = this.localeResolver.resolveLocale(request);
response.setLocale(locale);
View view;
if (mv.isReference()) {
// We need to resolve the view name.
view = resolveViewName(mv.getViewName(), mv.getModelInternal(), locale, request);
if (view &#