Estou ficando abaixo do rastreamento de pilha ao implantar meu aplicativo em um ambiente Apache Tomcat 8 com vários servidores. Estou recebendo esse erro frequentemente e parece que está bloqueando o thread do 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)
Alguém pode me orientar sobre como solucionar problemas ou restringir essa exceção? Não estou recebendo nenhuma referência a nenhum dos meus arquivos de origem do aplicativo. Tentei pesquisar no Google e, nos links que diz, você está tentando acessar o URL http através de https, o que parece improvável. Não estou recebendo esse erro quando o aplicativo é executado em uma única instância do Tomcat 8. Eu recebo isso apenas em um ambiente com vários servidores.
Também estou compartilhando as metatags incorporadas em cada página, se isso ajudar a identificar a 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">
Também estou usando o seguinte em algumas páginas, que basicamente é o mesmo que acima:
<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" />
Mesmo que alguém ajude a orientar minha tentativa de solução de problemas, isso será útil, pois atualmente não tenho idéia de onde procurar.
Desde já, obrigado.
fonte
Recebi a mesma exceção quando testei localmente. O problema foi um esquema de URL na minha solicitação.
mudança
https:// to http:// in your client url.
Provavelmente ajuda.
fonte
Você está chamando o servidor local com http : // localhost: 8080 / foo / bar. Chame-o com https : // localhost: 8080 / foo / bar. Isso resolve o problema
fonte
Caso alguém esteja usando arrogância:
Altere o esquema para
HTTP
ouHTTPS
, dependendo das necessidades, antes de executar a execução.Carteiro:
Alterar o caminho da URL para
http://
ouhttps://
no endereço da URLfonte
Eu recebi essa exceção não relacionada a problemas de TLS. No meu caso, o valor do cabeçalho Content-Length não correspondia ao comprimento do corpo.
fonte
content-length
cabeçalho resolve esse problema.Content-Length
cabeçalho corrigiu o atraso.Respondendo a essa pergunta antiga (para outras que possam ajudar)
configuração correta do seu httpd conf fará com que o problema seja resolvido. Instale qualquer servidor httpd, se você não tiver um.
Listando minha configuração aqui.
edite o arquivo como acima e reinicie o httpd como abaixo
E, em seguida, solicitar com com
https
funcionará sem exceção.Também solicitar com
http
encaminhará parahttps
! Não se preocupe.fonte
Resolvi esse erro fazendo duas coisas no navegador Chrome:
Este site também possui essas informações e outras opções: https://www.thesslstore.com/blog/fix-err-ssl-protocol-error/
fonte
Eu sei que esse é um thread antigo, mas há um caso específico em que isso pode acontecer:
Se você estiver usando o gateway api da AWS juntamente com um link VPC e se o Network Load Balancer tiver o protocolo proxy v2 ativado, uma 400 Solicitação incorreta também ocorrerá.
Levei a tarde inteira para descobrir, então, se isso puder ajudar alguém, eu ficaria feliz :)
fonte
Eu estava recebendo a mesma exceção, sempre que uma página era carregada,
Descobri que um dos URLs da minha página era https em vez de http. Quando mudei o mesmo, o erro desapareceu.
fonte
Isso geralmente acontece quando você está usando um esquema de URI que não é suportado pelo servidor no qual o aplicativo está implantado. Portanto, convém verificar o que todos os esquemas seu servidor suporta e modificar sua solicitação
URI
adequadamente ou adicionar o suporte a esse esquema em seu servidor. O escopo do seu aplicativo deve ajudá-lo a decidir sobre isso.fonte
Aconteceu comigo quando eu tinha uma mesma porta usada no túnel ssh SOCKS para executar o Proxy na porta 8080 e meu servidor e meu proxy do navegador firefox foram definidos para essa porta e obtive esse problema.
fonte
No meu caso, tive que limpar o histórico / cookies do navegador para me livrar desse erro.
fonte