org.apache.coyote.AbstractProtocol $ ConnectionHandler.process Ошибка чтения запроса, игнорируется

2

Используя Tomcat server 8.5.4 в качестве автономной службы (tomcat8w.exe), я получаю следующую ошибку: "logs/tomcat8-stderr.YYYY-MM-DD.txt", когда я останавливаю сервер:

org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored
java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSslSupport(NioEndpoint.java:1349)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:775)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:830)
at org.apache.tomcat.util.net.NioEndpoint$Poller.add(NioEndpoint.java:669)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.registerReadInterest(NioEndpoint.java:1264)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1433)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
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)

Мой соединитель следующий:

<Connector SSLEnabled="true" clientAuth="false" keyAlias="xxx" keystoreFile="F:\Programs\apache-tomcat-8.5.4\certificate\xxx.keystore" keystorePass="xxx" maxThreads="150" port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation" scheme="https" secure="true" sslEnabledProtocols="all" sslProtocol="SSL"/>

У вас есть какие-то объяснения, что здесь может быть неправильным?

Теги:
tomcat
connector
tomcat-valve

2 ответа

1

Прежде всего, я сожалею, что написал это здесь, а не в комментарии, но у меня все еще недостаточно репутации для комментариев.

Я не эксперт в конфигурации Tomcat, но могу сказать, что эта ошибка произошла со мной, и это было вызвано номером порта, который я использовал, насколько я могу судить.

У меня был порт 20443, сконфигурированный в разъеме вместе с протоколом Http11Nio, и это вызвало ту же проблему, описанную здесь. Как только я сменил порт на 8443 и перезапустил tomcat, он работал правильно. А при использовании порта 20443, если я использую протокол Http11Nio2, он работает (как описано Etienne).

Таким образом, это выглядит связанным с портом диапазона с протоколом Http11Nio. Я использую хранилище ключей PKCS12, но после нескольких тестов ничего не указывает на привязку к хранилищу ключей.

Это не объясняет основную причину, но в аренде сужает исследование до более конкретной области.

Я создал отчет об ошибке в bugzilla для дальнейшего рассмотрения: https://bz.apache.org/bugzilla/show_bug.cgi?id=61089

Надеюсь, это поможет.

  • 0
    Команда Apache ответила на мой отчет об ошибке и пометила его как дубликат ошибки [60030] ( bz.apache.org/bugzilla/show_bug.cgi?id=60030 ), объяснение - ошибка для Apache Tomcat версии 8.0.x и это было решено в версии 8.5.5 и выше. Проблема связана с поддержкой индикации имени сервера (SNI). Вот цитата из решения Марка Томаса с командой Apache: «Это было исправлено в следующих ветках: - 9.0.x для 9.0.0.M10 и далее - 8.5.x для 8.5.5 и далее 8.0.x и ранее не пострадали, так как они не поддерживают SNI. "
1

После некоторых исследований выяснилось, что замена "org.apache.coyote.http11.Http11NioProtocol" на "org.apache.coyote.http11.Http11Nio2Protocol" оказывается работать. Я решил свою проблему, но все же, любые комментарии/рекомендации или решения по этому поводу приветствуются.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню