Java 避免";找不到URI为“0”的HTTP请求的映射;或捕获所有控制器
避免以下警告的最佳方法是什么Java 避免";找不到URI为“0”的HTTP请求的映射;或捕获所有控制器,java,spring-boot,spring-mvc,Java,Spring Boot,Spring Mvc,避免以下警告的最佳方法是什么 o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [......] 我尝试按如下方式添加一个“全部捕获”控制器: @Controller class CatchAllController { @RequestMapping(value = "/**") public ResponseEntity<?> catchAll() {
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);
}
}
@控制器
类CatchAllController{
@请求映射(值=“/**”)
公众反应{
返回新的ResponseEntity(未找到HttpStatus.NOT_);
}
}
但由于某些原因,控制器也会捕获静态内容(即src/main/resources/static/
),因此无法访问
另一方面,我不希望这些警告出现在日志中,因为客户端可能访问随机URI,我不希望收到通知
另一方面,我不希望这些警告出现在日志中
因为客户端可能访问随机URI,我不想被通知
关于它
然后只需禁用记录这些警告的记录器
截至,这些都是通过这些成员从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>
...
Yes-提高记录器的级别始终是一个解决方案,但我认为如果Spring决定在这种情况下发出警告,可能是有原因的。也许覆盖所有可能的URI是一种好的做法?如果是,我怎么做才能不涉及我在问题中描述的问题?@Mickelmarrache您可以查看注册自己的HandlerMapping
last来处理所有以前未处理的请求。