java.lang.IllegalArgumentException: caractère non Valide (CR ou LF) trouvé dans le nom de la méthode
J'ai un Spring MVC de l'application en cours d'exécution sur Tomcat8. Une fois dans un jour ou deux j'obtiens une exception dans mon fichier journal
15-Jun-2016 10:43:39.832 INFO [http-nio-8080-exec-50] 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 (CR or LF) found in method name
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:228)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
quelqu'un a une idée de ce que cela pourrait être?
Ressemble entrants-tête de requête HTTP est mal formé. Comme message d'erreur vous indique, l'en-tête de requête contient caractère interdit dans le nom de la méthode HTTP (fin de ligne), donc la demande de l'analyseur échoue avec l'exception. Il n'est donc pas un problème dans votre code. Vous pouvez l'ignorer ou de le demander à l'expéditeur de vérifier la demande de validité.
Vagaytsev - demande de Web & nous avons LB programme d'installation avec nginx. Sur le serveur, il jette l'erreur ci-dessus et jette Bad Gateway. scalescale.com/tips/nginx/502-bad-gateway-error-using-nginx n'aide pas 🙁
Je crois que, cette exception doit faire plus avec la Configuration de SSL, comme le même (enfin, presque semblable) la guerre des œuvres sur la scène machines - où nous avons accès par http - alors que le test de Production de l'installation (à l'aide de https) est l'endroit où nous sommes confrontés à ce problème. Vérifier notre de configuration de nginx. Dans le cas, vous avez trouvé la solution - faire, laissez-moi savoir 🙂
Salut VadOs, Est votre tomcat cours d'exécution dans le nuage de la machine? si oui, veuillez vous référer - (cyber4.org/three-legged-pig/...) et (confluence.atlassian.com/confkb/...)
Les gars, avez-vous réalisé des progrès?
Vagaytsev - demande de Web & nous avons LB programme d'installation avec nginx. Sur le serveur, il jette l'erreur ci-dessus et jette Bad Gateway. scalescale.com/tips/nginx/502-bad-gateway-error-using-nginx n'aide pas 🙁
Je crois que, cette exception doit faire plus avec la Configuration de SSL, comme le même (enfin, presque semblable) la guerre des œuvres sur la scène machines - où nous avons accès par http - alors que le test de Production de l'installation (à l'aide de https) est l'endroit où nous sommes confrontés à ce problème. Vérifier notre de configuration de nginx. Dans le cas, vous avez trouvé la solution - faire, laissez-moi savoir 🙂
Salut VadOs, Est votre tomcat cours d'exécution dans le nuage de la machine? si oui, veuillez vous référer - (cyber4.org/three-legged-pig/...) et (confluence.atlassian.com/confkb/...)
Les gars, avez-vous réalisé des progrès?
OriginalL'auteur VadOs | 2016-06-15
Vous devez vous connecter pour publier un commentaire.
Cette erreur est provoquée par la malformation de la requête HTTP.
Dans la plupart des cas, ce message est trompeur car cette erreur se produit généralement lorsque vous essayez d'accéder à page non sécurisée via https.
Tomcat ne sait pas que les requêtes entrantes est chiffrée et est en train d'essayer d'interpréter cette demande de brut, non de la requête http.
C'est de cette façon il pouvait regarder dans les logs:
Standard, la bonne requête HTTP (http://localhost:8080)
Demande HTTPS (https://localhost:8080)
Comme vous pouvez le voir dans la deuxième demande, il y a des inconnus caractères au lieu de bon HTTP nom de la méthode (par exemple)
Donc, si votre serveur n'a pas de configuration SSL et l'erreur se produit "une fois dans un jour ou deux", alors probablement que quelqu'un est en train d'atteindre votre site web via https (probablement une sorte de bot)
Finalement quelqu'un essaie d'envoyer non sécurisé mais malformés plaine de la requête HTTP (par le biais de sa propre application - bot ou un autre client personnalisé).
Non, cela ne laisse pas de tomcat en arrêt de travail.
pourrait-il être google bot ?
OriginalL'auteur Maciej Marczuk
Il suffit d'ajouter ce problème aussi avec springboot.
J'ai été en utilisant une url HTTPS mais mon serveur local n'était pas à l'aide de SSL, donc j'ai changé l'url HTTP et cela a fonctionné.
OriginalL'auteur Maelig
Vérifiez à nouveau la requête envoyée.
Si le point de terminaison n'est pas https activé, transmettre la requête http.
OriginalL'auteur Sarat Chandra
J'ai aussi été confronté au même problème avec une Requête HTTP de type POST - Le problème a été "données JSON n'est pas correct". J'ai eu un enum attribut dans la classe où je passais mal (faute d'orthographe) dans l'objet. Et je commençais à cette exception.
OriginalL'auteur Bhupendra Kumar
J'ai rencontré ce même message d'erreur et il peut en avoir absolument rien à voir avec la configuration de Tomcat. Il m'a rendu fou d'essayer de trouver l'erreur. J'étais à plusieurs applications de six domaines avec un seul des domaines de la production de l'Proxy Erreur 502. Le "caractère Invalide" message est alors trouvé dans Tomcat, journal de catalina.:
Dans mon cas, je suis d'envoyer des demandes d'applications Tomcat d'Apache httpd l'aide d'un proxy. Le proxy directives sont utilisés dans httpd de l'hôte virtuel, normalement configuré dans /etc/httpd/conf.d/des hôtes virtuels.conf. Le proxy première redirige http non les requêtes reçues sur le port 80 vers le port 443.
Redirigé demande est alors traitée comme une normale entrant crypté https demande.
La configuration incorrecte. NE PAS COPIER CETTE!
Note de deux lignes:
Les directives sont de dire à Apache d'envoyer la demande pour le processus d'écoute sur le port 8081 comme une demande chiffrée. C'était de la faute de frappe de ma part. Le protocole http. Tomcat n'est pas de la manipulation de chiffrement, httpd est de la manipulation de chiffrement. Si Tomcat est la réception d'une demande chiffrée sur un non-crypté connecteur résultant dans le "caractère Invalide" erreur exceptionnellement bien expliqué dans Maciej Marczuk (https://stackoverflow.com/users/1545775/maciej-marczuk) réponse. Merci beaucoup pour cluing-moi à trouver mon erreur de frappe.
Le proxy directives devraient être:
Espère que cela aide quelqu'un.
Des acclamations.
OriginalL'auteur Ted Spradley
Cette erreur peut se produire en raison de mauvais port.
En fait, notez que si vous souhaitez accepter jeter HTTPS par défaut de Tomcat port 8443 :
https://localhost:8443
quand vous changer le connecteur, et le fichier de stockage des clés, mais encore l'extraction avec 8080 au lieu de 8443
Je ne suis pas d'accord. J'ai posté ce commentaire, car j'ai eu exactement le même message d'erreur en raison de la mauvaise port
C'est bien, mais s'il vous plaît réécrire votre réponse à la question d'une certaine manière. Votre réponse pourrait aussi lire "Notez que si vous voulez accepter jeter HTTP, port Tomcat par défaut est 8080" et il devrait contenir les mêmes informations: les informations sur les ports par défaut. Pas que les informations relatives à son problème, c'est pourquoi je dis qu'il ne répond pas à la question. Le fait est correct, mais c'est le fait que le fait de dire FTP de port par défaut est de 21 ans. Jusqu'à ce que vous montrer comment le fait et le problème sont liées, vous n'êtes pas à répondre à la question, vous êtes juste de dire les faits.
OriginalL'auteur hadf