java - 避免“找不到带有 URI 的 HTTP 请求的映射”或包罗万象的控制器
问题描述
避免以下警告的最佳方法是什么?
o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [......]
我尝试添加一个包罗万象的控制器,如下所示:
@Controller
class CatchAllController {
@RequestMapping(value = "/**")
public ResponseEntity<?> catchAll() {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
但是由于某种原因,静态内容(即src/main/resources/static/
)也被控制器捕获,因此无法访问。
另一方面,我不希望这些警告出现在日志中,因为客户端可能会访问随机 URI,我不想收到有关它的通知。
解决方案
另一方面,我不希望这些警告出现在日志中,因为客户端可能会访问随机 URI,我不想收到有关它的通知。
然后只需禁用记录这些警告的记录器。
从Spring 5.1.4.RELEASE 开始,这些是DispatcherServlet
通过这些成员记录的
/** Log category to use when no mapped handler is found for a request. */
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. */
protected static final Log pageNotFoundLogger = LogFactory.getLog(PAGE_NOT_FOUND_LOG_CATEGORY);
使用 Logback,您可以声明类似
<logger name="org.springframework.web.servlet.PageNotFound" level="ERROR">
...
</logger>
同样,使用 log4j2,你会做
<Logger name="org.springframework.web.servlet.PageNotFound" level="ERROR">
...
</Logger>
推荐阅读
- windows - Winrm 无法使用 dnscmd - Windows server 2012 R2 Standard server
- regex - 使用 sed 替换的正则表达式
- php - 在 Codeigniter4 中找不到类“App\Model\Users”
- javascript - 当弹出窗口关闭时,如何删除扩展弹出窗口(React 组件)的侦听器?
- sql - T-SQL 获取合同的取消日期
- python - 复制没有不同属性的字典的Pythonic方式
- c++ - 按下按钮时挂起应用程序,不明白为什么
- git - Git rebase 可能的错误
- asp.net-core-mvc - 如何稍后在操作方法中覆盖 [ResponseCache] 属性?
- python - 如何转换数据框列