Java сервер, использующий Jetty: Очень простой пример, не работает, отображается HTTP ОШИБКА 503 Служба недоступна

#java #xml #server #jetty

#java #xml #сервер #jetty

Вопрос:

Я следовал этому руководству:https://happycoding.io/tutorials/java-server/servlets

Отображение статической веб-страницы html прошло нормально, однако я не могу заставить работать динамическую версию. Мой web.xml заключается в следующем:

 <web-app>
    <servlet>
        <servlet-name>MyHelloWorldServlet</servlet-name>
        <servlet-class>HelloWorldServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyHelloWorldServlet</servlet-name>
        <url-pattern>/index.html</url-pattern>
    </servlet-mapping>
</web-app>
  

Мой Java-код выглядит следующим образом:

 import java.io.PrintWriter;
import java.io.IOException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorldServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        PrintWriter out = response.getWriter();
        out.println("<h1>Hello world!</h1>");
        out.println("<p>This is our first servlet.</p>");
    }
}
  

Я скомпилировал Java-код в BlueJ и добавил файл .class в папку classes в WEB-INF.
Мой порядок файлов следующий:
веб-приложения/
HelloWorldWebApp/
WEB-INF/
web.xml
классы/
HelloWorldServlet.class

Я не уверен, что я делаю неправильно.

Комментарии:

1. 503 означает, что веб-приложение не было развернуто. Можете ли вы отредактировать свой вопрос и добавить, как вы компилируете и как вы запускаете jetty, а также любые выходные данные / ошибки при запуске jetty, которые вы видите?

Ответ №1:

Я разобрался с проблемой.

Браузер отображал только ошибку 503, но терминал, с которого я запустил сервер, на самом деле отображал больше информации об ошибке. Ошибка заключалась в том, что текущая версия jdk, которую я использовал, была несовместима с jetty. Я не мог понять, как изменить версию java в bluej, поэтому вместо этого я просто загрузил se 8 и скомпилировал через командную строку. Это устранило проблему.