При развертывании приложения в многосерверной среде Apache Tomcat 8 я получаю трассировку ниже стека. Я получаю эту ошибку часто, и кажется, что она блокирует поток 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)
Кто-нибудь может указать мне, как устранить неполадки или сузить такое исключение? Я не получаю никаких ссылок на какие-либо исходные файлы моего приложения. Я пытался гуглить, и в одной из ссылок, которые он указал, вы пытаетесь получить доступ к http URL через https, что кажется маловероятным. Я не получаю эту ошибку, когда приложение работает на одном экземпляре Tomcat 8. Я получаю это только в многосерверной среде.
Я также делюсь метатегами, которые я встроил в каждую страницу, если это помогает определить причину.
<%
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">
Я также использую следующее на нескольких страницах, которые в основном такие же, как указано выше:
<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" />
Даже если кто-то поможет определить направление моей попытки устранения неполадок, это будет полезно, так как в настоящее время я понятия не имею, где искать.
Заранее спасибо.
источник
Я получил то же исключение при локальном тестировании. Проблема была в схеме URL в моем запросе.
+ Изменить
https:// to http:// in your client url.
Наверное, это помогает.
источник
Вы вызываете локальный сервер с http : // localhost: 8080 / foo / bar. Звоните по адресу https : // localhost: 8080 / foo / bar. Это решает проблему
источник
В случае, если кто-то использует чванство:
Измените Схему на
HTTP
илиHTTPS
, в зависимости от потребностей, до нажатия кнопки Выполнить.Почтальон:
Изменить URL-адрес Путь к
http://
илиhttps://
в URL-адресеисточник
Я получил это исключение, не связанное с какими-либо проблемами TLS. В моем случае значение заголовка Content-Length не соответствует длине тела.
источник
content-length
заголовка решает эту проблему.Content-Length
заголовка исправило задержку.Ответ на этот старый вопрос (для других, которые могут помочь)
Правильная настройка httpd conf решит проблему. Установите любой httpd сервер, если у вас его нет.
Список моего конфига здесь.
отредактируйте файл, как указано выше, а затем перезапустите httpd, как показано ниже
И тогда запрос с помощью
https
будет работать без исключения.Также запрос с
http
пересылкойhttps
! Не беспокойся.источник
Я получил эту ошибку, выполнив 2 вещи в браузере Chrome:
На этом сайте есть эта информация и другие параметры: https://www.thesslstore.com/blog/fix-err-ssl-protocol-error/
источник
Я знаю, что это старая ветка, но есть конкретный случай, когда это может произойти:
Если вы используете шлюз API AWS, соединенный с каналом VPC, и если в Network Load Balancer включен прокси-протокол v2, также произойдет 400 неверных запросов.
У меня ушел целый день, чтобы понять это, так что, если это может кому-то помочь, я был бы рад :)
источник
Я получал одно и то же исключение, когда страница загружалась,
Я обнаружил, что один из URL моей страницы был https вместо http, когда я изменил то же самое, ошибка исчезла.
источник
Обычно это происходит, когда вы используете схему URI, которая не поддерживается сервером, на котором развернуто приложение. Таким образом, вы можете либо проверить, какие все схемы поддерживает ваш сервер, и соответственно изменить свой запрос
URI
, либо добавить поддержку этой схемы на ваш сервер. Объем вашей заявки должен помочь вам принять решение об этом.источник
Это случилось со мной, когда у меня был один и тот же порт, используемый в SOCKS туннеле SOCKS для запуска прокси-сервера в 8080-м порту, и мой сервер и прокси браузера Firefox были настроены на этот порт и получили эту проблему.
источник
В моем случае мне пришлось очистить историю браузера / куки, чтобы избавиться от этой ошибки.
источник