J'obtiens sous la trace de la pile lorsque je déploie mon application dans un environnement Apache Tomcat 8 multi-serveurs. J'obtiens fréquemment cette erreur, et il semble que cela bloque le fil 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)
Quelqu'un peut-il me dire comment résoudre ou réduire une telle exception? Je ne reçois aucune référence à aucun de mes fichiers source d'application. J'ai essayé de rechercher sur Google, et parmi les liens indiqués, vous essayez d'accéder à http url via https, ce qui semble peu probable. Je n'obtiens pas cette erreur lorsque l'application s'exécute sur une seule instance de Tomcat 8. Je reçois cela uniquement dans un environnement multi-serveur.
Je partage également les balises meta que j'ai intégrées sur chaque page, si cela aide à identifier la cause.
<%
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">
J'utilise également ce qui suit dans quelques pages, ce qui est fondamentalement le même que ci-dessus:
<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" />
Même si quelqu'un m'aide à donner une direction à ma tentative de dépannage, cela sera utile, car actuellement je n'ai aucune idée de l'endroit où chercher.
Merci d'avance.
la source
J'ai eu la même exception lorsque j'ai testé localement. Le problème était un schéma d'URL dans ma demande.
Changement
https:// to http:// in your client url.
Cela aide probablement.
la source
Vous appelez le serveur local avec http : // localhost: 8080 / foo / bar. Appelez-le avec https : // localhost: 8080 / foo / bar. Cela résout le problème
la source
Dans le cas où quelqu'un utilise swagger:
Modifiez le schéma en
HTTP
ouHTTPS
, en fonction des besoins, avant de lancer l'exécution.Facteur:
Modifiez le chemin de l'URL vers
http://
ouhttps://
dans l'adresse URLla source
J'ai reçu cette exception sans rapport avec aucun problème TLS. Dans mon cas, la valeur de l'en-tête Content-Length ne correspondait pas à la longueur du corps.
la source
content-length
tête résout ce problème.Content-Length
tête a corrigé le délai.Répondre à cette vieille question (pour d'autres qui peuvent aider) La
configuration correcte de votre conf httpd résoudra le problème. Installez n'importe quel serveur httpd, si vous n'en avez pas.
Liste de ma configuration ici.
éditez le fichier comme ci-dessus, puis redémarrez httpd comme ci-dessous
Et puis demander avec avec
https
fonctionnera sans exception.Demandez également avec
http
volontéhttps
! Pas de soucis.la source
J'ai résolu cette erreur en faisant 2 choses dans le navigateur Chrome:
Ce site contient également ces informations et d'autres options: https://www.thesslstore.com/blog/fix-err-ssl-protocol-error/
la source
Je sais que c'est un vieux fil, mais il y a un cas particulier où cela peut arriver:
Si vous utilisez la passerelle d'API AWS couplée à un lien VPC et si l'équilibreur de charge réseau a activé le protocole proxy v2, une 400 Bad Request se produira également.
Il m'a fallu tout l'après-midi pour le comprendre, donc si cela peut aider quelqu'un, je serais heureux :)
la source
J'obtenais la même exception, chaque fois qu'une page était chargée,
J'ai trouvé que l'une de mes URL de page était https au lieu de http, lorsque j'ai changé la même chose, l'erreur avait disparu.
la source
Cela se produit généralement lorsque vous utilisez un schéma d'URI qui n'est pas pris en charge par le serveur sur lequel l'application est déployée. Ainsi, vous souhaiterez peut-être vérifier tous les schémas pris en charge par votre serveur et modifier votre demande en
URI
conséquence, ou vous souhaiterez peut-être ajouter la prise en charge de ce schéma dans votre serveur. La portée de votre application devrait vous aider à prendre une décision à ce sujet.la source
Cela m'est arrivé quand j'avais un même port utilisé dans le tunnel ssh SOCKS pour exécuter Proxy sur le port 8080 et que mon serveur et mon proxy de navigateur Firefox étaient définis sur ce port et ont eu ce problème.
la source
Dans mon cas, j'ai dû effacer l'historique du navigateur / les cookies pour me débarrasser de cette erreur.
la source