44

Websocket アプリケーションで Tomcat 7.0.43 を使用しています。私のアプリは Tomcat 7.0.42 で正常に動作しますが、43 では Websocket でサーバーにアクセスしようとすると次の出力が得られます。

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.

私のブラウザコンソールには次のように表示されます。

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 

そのリクエストのアクセス ログは次のとおりです。

"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"

Tomcat 7.0.43 では何が変更されましたか? 何を変更する必要がありますか?

4

10 に答える 10

30

このリスナーがある場合:

    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>

server.xml で、それを削除して試してください。APR コネクタを使用している場合、キーストアは使用できません

于 2013-11-22T12:14:38.077 に答える
19

私にとって、問題は、通常予想されるよりも大きな HTTP ヘッダーを渡すことでした。server.xml の Connector ノードに maxHttpHeaderSize="1048576" 属性を設定することで解決しました。

于 2015-10-16T21:12:39.377 に答える
19

キャッシュされた Cookie が多すぎると、サーバーが壊れます (要求ヘッダーのサイズが大きすぎます!)。Cookie をクリアすると、この問題も解決できます。

于 2015-05-14T19:03:37.753 に答える
8

HTTP ではなく HTTPS プロトコルを誤って要求していないか確認してください。

https://localhost:...代わりにリクエストしていたことを見落としてhttp://localhost:...いたため、この奇妙なメッセージが表示されました..

于 2019-11-04T15:50:43.367 に答える
3

上記のすべてを試しましたが、何もうまくいきませんでした。次に、HTTP / 1.1とTomcat管理ポートの両方のTomcatポート番号を変更したところ、解決しました。

上記の他の解決策が人々のために働いていることがわかりますが、上記のいずれかが機能しない場合は、これを試す価値があります.

みんな、ありがとう!

于 2016-02-12T10:23:30.147 に答える
2

filter私たちの場合、アプリケーションHttpServletResponse sendRedirect()に他の URLに対するカスタムがあるため、エラーが発生したことが判明しました。

何らかの理由で、リダイレクトがkeep-alive接続のステータスを閉じていないため、タイムアウト例外が発生します。

Tomcat Docsで確認し、maxKeepAliveRequests値を に設定して無効にする1と、エラーが表示されなくなりました。

今のところ、エラーに対する実際の解決策はありません。

于 2016-07-29T08:57:08.800 に答える
1

Tomcat をアップグレードしたくない場合は、この行をcatalina.properties

tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

それは私のために働きます http://www.zhoulujun.cn/zhoulujun/html/java/tomcat/2018_0508_8109.html

于 2018-05-08T02:32:49.373 に答える