Tomcat 7.0.43"INFO:解析HTTP请求标头时出错"

con*_*ile 33 java tomcat servlets tomcat7

我使用带有websocket应用程序的Tomcat 7.0.43.我的应用程序在Tomcat 7.0.42中工作正常,但是当我尝试在websockets上访问我的服务器时,我得到以下输出:

Sep 16, 2013 3:08:34 AM org.apache.coyote.http11.AbstractHttp11Processor process
INFO: Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
Run Code Online (Sandbox Code Playgroud)

我的浏览器控制台显示以下内容

WebSocket connection to 'ws://www.testapp.com/socket/notification/848df2e62fcf93e1b3?X-Atmosphere-tracking-i…Date=0&Content-Type=application/json;%20charset=UTF-8&X-atmo-protocol=true' failed: Unrecognized frame opcode: 5 
Run Code Online (Sandbox Code Playgroud)

以下是该请求的访问日志:

"GET /socket/notification/848df2e62fcf93e1b3?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.0.2-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&Content-Type=application/json;%20charset=UTF-8&X-atmo-protocol=true HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)

Tomcat 7.0.43有什么变化?我需要改变什么?

ben*_*oez 24

如果你有这个听众:

    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
Run Code Online (Sandbox Code Playgroud)

在您的server.xml上,删除它并尝试.如果使用APR连接器,则无法使用密钥库


Kim*_*Man 16

如果缓存的cookie太多,则会破坏服务器(请求标头的大小太大!).清除cookie也可以解决此问题.


Phi*_*ppe 13

对我来说,问题是通过比通常预期的HTTP标头更大的传递.我通过在server.xml中的Connector节点上设置maxHttpHeaderSize ="1048576"属性来解决它.


nka*_*sar 8

我有一个类似的问题,我发送了一个POST请求(使用Firefox的RESTClient插件),请求正文中的数据,并收到相同的消息.

在我的情况下,这发生是因为我试图在未配置HTTPS的本地tomcat实例中使​​用HTTPS协议.


Gon*_*ndy 8

检查,如果您没有意外请求 HTTPS 协议而不是 HTTP。

我忽略了我正在请求https://localhost:...而不是http://localhost:...它导致了这个奇怪的消息..


Pio*_* K. 5

当我尝试打开https时出现了我的问题。我不使用SSL。

这是Tomcat 错误

今天,2017年12月2日从Debian仓库最新的正式版的Tomcat 8.0.14

解决方案是从官方站点下载并安装Tomcat 8、8.5、9的最新软件包或从jessie-backports 升级到最新版本(8.5.x)。

Debian 8

添加到/etc/apt/sources.list

deb http://ftp.debian.org/debian jessie-backports main
Run Code Online (Sandbox Code Playgroud)

然后从jessie-backports更新并安装Tomcat

sudo apt-get update && sudo apt-get -t jessie-backports install tomcat8
Run Code Online (Sandbox Code Playgroud)