Как устранить ошибку недоступности сервиса HTTP: 503, используя драйверы Jetty с java11? - PullRequest
0 голосов
/ 11 ноября 2019

Мне нужно запустить локальный сервер, используя драйверы Jetty с java 11. Я могу запустить сервер и получить к нему доступ с Java8, но с java 11, когда я использую команду curl для проверки доступности сервера, он возвращает следующее:

<code>$ curl http://localhost:8080//sample/site/URL/info
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 503 Service Unavailable</title>
</head>
<body><h2>HTTP ERROR 503</h2>
<p>Problem accessing /sample/site/URL/info. Reason:
<pre>    Service Unavailable

Powered by Jetty: // 9.4.20.v20190813

Трассировка стека

java.io.IOException: Server returned HTTP response code: 503 for URL: http://localhost:8080/idp/idpservice/register
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894) ~[na:1.8.0_192]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) ~[na:1.8.0_192]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_192]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_192]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_192]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_192]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api-3.1.0.jar!/:na]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) [jetty-servlet-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587) [jetty-servlet-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [jetty-security-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [jetty-servlet-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:159) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.Server.handle(Server.java:497) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [jetty-server-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [jetty-io-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [jetty-util-9.2.9.v20150224.jar!/:na]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [jetty-util-9.2.9.v20150224.jar!/:na]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_192]

Как вы можете видеть, я использую банку Jetty 9.4.20.v20190813 версии. Есть идеи, какие еще вещи я должен изучать помимо пристани?

1 Ответ

0 голосов
/ 15 ноября 2019

Версия Jetty

Как вы можете видеть, я использую банки Jetty 9.4.20.v20190813. Любая идея, что еще я должен смотреть помимо пристани?

На самом деле, ваша трассировка стека говорит иначе ...

... .run(QueuedThreadPool.java:555) [jetty-util-9.2.9.v20150224.jar!/:na]

Jetty 9.2.x это EOL (КонецЖизнь).

См .: https://www.eclipse.org/jetty/documentation/current/what-jetty-version.html

Поддержка Java 11 не выполнялась до Jetty 9.4.8

503 Причина в соответствии с вашей Stacktrace

Код состояния 503 в вашей трассировке стека происходит от HttpURLConnection, а не от Jetty.

java.io.IOException: Server returned HTTP response code: 503 for URL: http://localhost:8080/idp/idpservice/register
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894) ~[na:1.8.0_192]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) ~[na:1.8.0_192]

Несоответствие URL

Ваша трассировка стека и вашаВ исходном вопросе используются разные URL.

Исходный вопрос

http://localhost:8080//sample/site/URL/info

Stacktrace

http://localhost:8080/idp/idpservice/register

КакJetty отвечает 503

Существует только несколько мест, где Jetty сама ответит кодом состояния 503 (услуга недоступна). (все остальные ответы с кодом состояния 503 поступают из приложения и его собственных библиотек, а не Jetty)

  1. Ошибка развертывания - если ваше веб-приложение не удалось развернуть, оно будет создавать журналы на стороне сервера во время запуска сервераили развертывание веб-приложения, объясняющее, почему оно не удалось развернуть. На эти неудачные веб-приложения отвечает 503.
  2. Изящное завершение работы сервера - когда серверу выдается запрос на завершение работы, все запросы, поступающие в узком интервале времени между началом постепенного выключения и сервером, фактическина завершение работы отвечает 503.
  3. DoSFilter - при использовании фильтра предотвращения отказа в обслуживании запросы, превышающие настроенные значения MaxRequestsM, будут отвечать кодом состояния 503.
  4. Сервлеты приложениярасширение org.eclipse.jetty.servlets.DataRateLimitedServlet будет отвечать на запросы каталогов (заканчивающиеся на /) кодом состояния 503. (никакие сервлеты или фильтры в самой Jetty не используют этот сервлет)
  5. Если ваше приложение выдает javax.servlet.UnavailableException во времяобработка запроса

Это все 503 источника в самой Jetty.

Самая распространенная причина 503 - неудачное развертывание веб-приложения, и только журналы со стороны вашего сервера (во время развертывания вашего веб-приложения) поможет обнаружить это состояние и его причину.

...