Me encuentro debajo del seguimiento de la pila cuando estoy implementando mi aplicación en un entorno Apache Tomcat 8 de varios servidores. Recibo este error con frecuencia, y parece que está bloqueando el hilo de 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)
¿Alguien puede indicarme cómo solucionar o reducir tal excepción? No obtengo ninguna referencia a ninguno de los archivos fuente de mi aplicación. Traté de buscar en Google, y en los enlaces que decía, está intentando acceder a la URL http a través de https, lo que parece poco probable. No recibo este error cuando la aplicación se ejecuta en una sola instancia de Tomcat 8. Solo obtengo esto en un entorno de servidores múltiples.
También estoy compartiendo las metaetiquetas que he incrustado en cada página, si eso ayuda a identificar la causa.
<%
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">
También estoy usando lo siguiente en algunas páginas, que básicamente es lo mismo que arriba:
<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" />
Incluso si alguien me ayuda a dar una dirección a mi intento de solución de problemas, será útil, ya que actualmente no tengo idea de dónde buscar.
Gracias por adelantado.
fuente
Obtuve la misma excepción cuando probé localmente. El problema era un esquema de URL en mi solicitud.
Cambio
https:// to http:// in your client url.
Probablemente ayude.
fuente
Está llamando al servidor local con http : // localhost: 8080 / foo / bar. Llámalo con https : // localhost: 8080 / foo / bar. Esto resuelve el problema
fuente
En caso de que alguien use arrogancia:
Cambiar el esquema de
HTTP
oHTTPS
, dependerá de las necesidades, antes de golpear la ejecutan.Cartero:
Cambiar la ruta de URL para
http://
ohttps://
en la dirección URLfuente
Recibí esta excepción no relacionada con ningún problema de TLS. En mi caso, el valor del encabezado Content-Length no coincidía con la longitud del cuerpo.
fuente
content-length
encabezado resuelve este problema.Content-Length
encabezado solucionó el retraso.Respondiendo a esta vieja pregunta (para otros que puedan ayudar)
Configurar su httpd conf correctamente resolverá el problema. Instale cualquier servidor httpd, si no tiene uno.
Listado de mi configuración aquí.
edite el archivo como se indica arriba y luego reinicie httpd como se muestra a continuación
Y luego solicitar con con
https
funcionará sin excepción.También solicite con
http
reenvío ahttps
! Sin preocupaciones.fuente
Este error se resolvió haciendo 2 cosas en el navegador Chrome:
Este sitio tiene esta información y otras opciones también: https://www.thesslstore.com/blog/fix-err-ssl-protocol-error/
fuente
Sé que este es un hilo viejo, pero hay un caso particular cuando esto puede suceder:
Si está utilizando la puerta de enlace API de AWS junto con un enlace VPC, y si el Network Load Balancer tiene el protocolo proxy v2 habilitado, también se producirá una 400 Solicitud incorrecta.
Me llevó toda la tarde averiguarlo, así que si puede ayudar a alguien, me alegraría :)
fuente
Recibía la misma excepción, cada vez que se cargaba una página,
Descubrí que una de las URL de mi página era https en lugar de http, cuando cambié la misma, el error desapareció.
fuente
Esto generalmente ocurre cuando está utilizando un esquema de URI que no es compatible con el servidor en el que se implementa la aplicación. Por lo tanto, es posible que desee verificar qué esquemas admite su servidor y modificar su solicitud en
URI
consecuencia, o puede agregar el soporte para ese esquema en su servidor. El alcance de su aplicación debería ayudarlo a decidir sobre esto.fuente
Me sucedió cuando tenía un mismo puerto utilizado en SOCKS de túnel ssh para ejecutar Proxy en el puerto 8080 y mi servidor y mi proxy de navegador Firefox se configuraron en ese puerto y obtuve este problema.
fuente
En mi caso, tuve que borrar el historial del navegador / cookies para deshacerme de este error.
fuente