博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
org.springframework.web.servlet.PageNotFound
阅读量:6233 次
发布时间:2019-06-22

本文共 6825 字,大约阅读时间需要 22 分钟。

 

 

2017-07-11 16:36:13.489 WARN  [http-nio-8032-exec-16]org.springframework.web.servlet.PageNotFound -Request method 'POST' not supported2017-07-11 16:37:30.491 WARN  [http-nio-8032-exec-48]org.springframework.web.servlet.PageNotFound -Request method 'POST' not supported

org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver

package org.springframework.web.servlet.mvc.support;import java.io.IOException;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.ConversionNotSupportedException;import org.springframework.beans.TypeMismatchException;import org.springframework.core.Ordered;import org.springframework.http.MediaType;import org.springframework.http.converter.HttpMessageNotReadableException;import org.springframework.http.converter.HttpMessageNotWritableException;import org.springframework.util.CollectionUtils;import org.springframework.util.StringUtils;import org.springframework.validation.BindException;import org.springframework.validation.BindingResult;import org.springframework.web.HttpMediaTypeNotAcceptableException;import org.springframework.web.HttpMediaTypeNotSupportedException;import org.springframework.web.HttpRequestMethodNotSupportedException;import org.springframework.web.bind.MethodArgumentNotValidException;import org.springframework.web.bind.MissingPathVariableException;import org.springframework.web.bind.MissingServletRequestParameterException;import org.springframework.web.bind.ServletRequestBindingException;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestPart;import org.springframework.web.context.request.async.AsyncRequestTimeoutException;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.support.MissingServletRequestPartException;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.NoHandlerFoundException;import org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver;/** * Default implementation of the {
@link org.springframework.web.servlet.HandlerExceptionResolver * HandlerExceptionResolver} interface that resolves standard Spring exceptions and translates * them to corresponding HTTP status codes. * *

This exception resolver is enabled by default in the common Spring * {

@link org.springframework.web.servlet.DispatcherServlet}. * * @author Arjen Poutsma * @author Rossen Stoyanchev * @author Juergen Hoeller * @since 3.0 * @see org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler * @see #handleNoSuchRequestHandlingMethod * @see #handleHttpRequestMethodNotSupported * @see #handleHttpMediaTypeNotSupported * @see #handleMissingServletRequestParameter * @see #handleServletRequestBindingException * @see #handleTypeMismatch * @see #handleHttpMessageNotReadable * @see #handleHttpMessageNotWritable * @see #handleMethodArgumentNotValidException * @see #handleMissingServletRequestParameter * @see #handleMissingServletRequestPartException * @see #handleBindException */public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionResolver { /** * Log category to use when no mapped handler is found for a request. * @see #pageNotFoundLogger */ public static final String PAGE_NOT_FOUND_LOG_CATEGORY = "org.springframework.web.servlet.PageNotFound"; /** * Additional logger to use when no mapped handler is found for a request. * @see #PAGE_NOT_FOUND_LOG_CATEGORY */ protected static final Log pageNotFoundLogger = LogFactory.getLog(PAGE_NOT_FOUND_LOG_CATEGORY); .... /** * Handle the case where no request handler method was found. *

The default implementation logs a warning, sends an HTTP 404 error, and returns * an empty {

@code ModelAndView}. Alternatively, a fallback view could be chosen, * or the NoSuchRequestHandlingMethodException could be rethrown as-is. * @param ex the NoSuchRequestHandlingMethodException to be handled * @param request current HTTP request * @param response current HTTP response * @param handler the executed handler, or {
@code null} if none chosen * at the time of the exception (for example, if multipart resolution failed) * @return an empty ModelAndView indicating the exception was handled * @throws IOException potentially thrown from response.sendError() * @deprecated as of 4.3, along with {
@link org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException} */ @Deprecated protected ModelAndView handleNoSuchRequestHandlingMethod(org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { pageNotFoundLogger.warn(ex.getMessage()); response.sendError(HttpServletResponse.SC_NOT_FOUND); return new ModelAndView(); } /** * Handle the case where no request handler method was found for the particular HTTP request method. *

The default implementation logs a warning, sends an HTTP 405 error, sets the "Allow" header, * and returns an empty {

@code ModelAndView}. Alternatively, a fallback view could be chosen, * or the HttpRequestMethodNotSupportedException could be rethrown as-is. * @param ex the HttpRequestMethodNotSupportedException to be handled * @param request current HTTP request * @param response current HTTP response * @param handler the executed handler, or {
@code null} if none chosen * at the time of the exception (for example, if multipart resolution failed) * @return an empty ModelAndView indicating the exception was handled * @throws IOException potentially thrown from response.sendError() */ protected ModelAndView handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { pageNotFoundLogger.warn(ex.getMessage()); String[] supportedMethods = ex.getSupportedMethods(); if (supportedMethods != null) { response.setHeader("Allow", StringUtils.arrayToDelimitedString(supportedMethods, ", ")); } response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, ex.getMessage()); return new ModelAndView(); } ....}

 

tips:

access.log

actuator的/trace

/trace:该端点用来返回基本的HTTP跟踪信息。

默认情况下,跟踪信息的存储采用org.springframework.boot.actuate.trace.InMemoryTraceRepository实现的内存方式,始终保留最近的100条请求记录。

 

转载地址:http://riqna.baihongyu.com/

你可能感兴趣的文章
小公司的管理
查看>>
无废话WCF入门教程三[WCF的宿主]
查看>>
iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
查看>>
详细解析:如何制作嵌入式Linux文件系统
查看>>
C# 两个独立exe程序直接通信
查看>>
【Unity3d】【项目学习心得】从资源server下载资源(一)
查看>>
C# WinForm 技巧八:界面开发之“WeifenLuo.WinFormsUI.Docking+OutLookBar” 使用
查看>>
Image Wall - jQuery & CSS3 图片墙效果
查看>>
使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象...
查看>>
IOS多线程 总结 -------------核心代码(GCD)
查看>>
SSL连接建立过程分析(1)
查看>>
[CI]CodeIgniter快速开发指南
查看>>
PowerDesigner中创建Oracle表全过程记录
查看>>
mysql中char,varchar,text区别总结
查看>>
宝宝日记
查看>>
Query Designer:Variable 变量
查看>>
python进阶八_警告和异常
查看>>
Tomcat JVM
查看>>
基础才是重中之重~多线程的代价~我的内存都被吃了!
查看>>
学习boost::asio一些小例子
查看>>