来自 intellij 的 运行 tomcat 时不断发出警告

Constant warning when running tomcat from intellij

突然之间,当我从 intellij 中 运行 tomcat 时,输出控制台不断地被消息轰炸。

(非常)短视频展示了这个:
http://screencast.com/t/ddBhIh3UZiA

不断输出的消息是:

16:05:31,157  WARN http-nio-8222-exec-1 servlet.PageNotFound:198 - Request method 'HEAD' not supported
16:05:31,158  WARN http-nio-8222-exec-2 servlet.PageNotFound:1120 - No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'dispatcher'

我正在使用 Spring 4.1 和 tomcat 8。 Java 8 和 Windows 8.1

这种现象以前是没有的,突然就出现了。这是怎么回事?

您的客户端似乎正在使用 HEAD 请求方法。它与 GET 类似,但它告诉服务器它不能 return 响应中的消息正文。

检查您的页面或客户端是否有 HEAD 请求,或者像这样接受 HEAD 作为 RequestMethod:

@RequestMapping(method = {RequestMethod.GET, RequestMethod.HEAD})

我遇到了完全相同的问题。如果您将 Tomcat 运行 配置设置为在启动时打开浏览器,IntelliJ 将尝试 ping 网站以确保它在打开浏览器之前已启动。我相信它正在执行 HEAD 请求,并且由于您的站点未设置为响应/HEAD 请求,因此您会收到错误消息。

在 运行 配置的服务器选项卡中取消选中 "Open browser" 下的 "After launch" 复选框为我修复了它。

至于让 JetBrains 解决这个问题,我不确定该怎么做。我刚刚升级到 14.0.3,所以这可能是原因...

由 JetBrains 在此工单中解决,如果您愿意,可以更换一个 Jar 来避免回归。

https://youtrack.jetbrains.com/issue/IDEA-135196