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

Используя 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"/>

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

2 ответа

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

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

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

У меня был настроен порт 20443 в соединителе вместе с протоколом Http11Nio, и это вызвало ту же проблему, описанную здесь. Как только я изменил порт на 8443 и перезапустил tomcat, он работал правильно. И при использовании порта 20443, если я перехожу на использование протокола Http11Nio2, он работает (как описано Этьеном).

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

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

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

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

Другие вопросы по тегам