Saya mendapatkan di bawah tumpukan jejak ketika saya menggunakan aplikasi saya di lingkungan multi-server Apache Tomcat 8. Saya sering mendapatkan kesalahan ini, dan sepertinya ia memblokir utas kucing jantan:
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)
Adakah yang bisa mengarahkan saya cara mengatasi masalah atau mempersempit pengecualian seperti itu? Saya tidak mendapatkan referensi ke file sumber aplikasi saya. Saya mencoba untuk google sekitar, dan di dalam tautan itu mengatakan, Anda mencoba mengakses url http melalui https, yang tampaknya tidak mungkin. Saya tidak mendapatkan kesalahan ini, ketika aplikasi berjalan pada instance Tomcat 8 tunggal. Saya mendapatkan ini hanya di lingkungan multi-server.
Saya juga membagikan tag meta yang saya lekatkan pada setiap halaman, jika itu membantu mengidentifikasi penyebabnya.
<%
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">
Saya juga menggunakan yang berikut ini di beberapa halaman, yang pada dasarnya sama dengan di atas:
<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" />
Bahkan jika ada yang membantu dalam memberikan arahan untuk upaya pemecahan masalah saya, itu akan berguna, karena saat ini saya tidak tahu, ke mana harus mencari.
Terima kasih sebelumnya.