Проблема: сервер бросает 302 временно перенаправить для протокола Http11AprProtocol - PullRequest
4 голосов
/ 25 октября 2019

Недавно мы начали поддерживать HTTP2 для наших серверов. Мы использовали приведенную ниже конфигурацию для обновления протокола HTTP2. Сборка началась без ошибок. Но после запуска сервера мы сталкиваемся с критической проблемой, то есть некоторые запросы переносятся с сервера в код состояния 302. И я не нашел никаких исключений в файле catalina.out.

Конфигурация :

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
     SSLEnabled="true" acceptCount="1000" maxSpareThreads="75" maxThreads="500" 
     minSpareThreads="25" compression="on" >
      <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" 
       compression="on" />
      <SSLHostConfig honorCipherOrder="false">
        <Certificate certificateKeyFile="conf/server.key" certificateFile="conf/server.crt"/>
      </SSLHostConfig>
    </Connector>

В файле журнала localhost_ есть некоторые подсказки. Обнаружено исключение NullPointerException в методе .invoke. Только эти запросы перемещаются в код состояния 302.

==> localhost.2019-10-24.log <==
24-Oct-2019 03:32:16.106 SEVERE [https-openssl-apr-8443-exec-16] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [default] in context with path [] threw exception
java.lang.NullPointerException
24-Oct-2019 03:32:16.843 SEVERE [https-openssl-apr-8443-exec-14] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [default] in context with path [] threw exception
java.lang.NullPointerException
==> localhost_access_log.2019-10-24.txt <==
121.244.91.22 - - [24/Oct/2019:03:32:12 -0700] POST /app/get_notification_count HTTP/2.0 200 73
121.244.91.21 - - [24/Oct/2019:03:32:14 -0700] POST /app/get_all_tag_details HTTP/2.0 200 4401
121.244.91.20 - - [24/Oct/2019:03:32:15 -0700] POST /app/get_notification_count HTTP/2.0 200 72
121.244.91.21 - - [24/Oct/2019:03:32:16 -0700] POST /app/get_notification_count HTTP/2.0 302 -
117.239.106.136 - - [24/Oct/2019:03:32:16 -0700] POST /app/get_notification_count HTTP/2.0 200 73
121.244.91.21 - - [24/Oct/2019:03:32:16 -0700] POST /app/get_notification_count HTTP/2.0 302 -
121.244.91.21 - - [24/Oct/2019:03:32:17 -0700] POST /app/get_all_user_details HTTP/2.0 200 1149
121.244.91.21 - - [24/Oct/2019:03:32:17 -0700] GET /app HTTP/2.0 200 2512

Когда я переключаюсь на другие сети, он работает (код состояния 200) без ошибок. Я полностью запутался в этом сценарии. Проблема не может быть воспроизведена после перезапуска сервера Tomcat.

Версия Tomcat: > 9

Буду очень признателен, если вы поможете мне с этим.

...