マルチサーバー Apache Tomcat 8 環境にアプリケーションをデプロイしているときに、以下のスタック トレースが表示されます。このエラーが頻繁に発生し、Tomcat スレッドがブロックされているようです。
INFO [http-nio-80-exec-4461] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:233)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1017)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1524)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1480)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
このような例外をトラブルシューティングまたは絞り込む方法を教えていただけますか? アプリケーションのソース ファイルのいずれにも参照がありません。Google で検索してみたところ、リンクの 1 つに、https 経由で http の URL にアクセスしようとしていると書かれていましたが、これはありそうにありません。アプリケーションが単一の Tomcat 8 インスタンスで実行されている場合、このエラーは発生しません。このエラーは、マルチサーバー環境でのみ発生します。
原因の特定に役立つ場合は、各ページに埋め込んだメタタグも共有します。
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
%>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1">
いくつかのページでは、基本的に上記と同じ以下のものも使用しています。
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="private" />
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache" />
誰かが私のトラブルシューティングの試みの方向性を示してくれるだけでも助かります。今のところどこを調べればよいのか全く分からないからです。
ベストアンサー1
この例外は、実行しようとしたときに発生する可能性があります。翻訳HTTPS が有効になっていないエンドポイント上のクライアントからのリクエスト。サーバーが生のデータを期待している場合、クライアントはリクエスト データを暗号化します。