Обслуживание статических файлов со встроенным Jetty

Я пытаюсь создать простое демонстрационное приложение со встроенным Jetty, которое обслуживает статические файлы из каталога "html", который является подкаталогом текущего рабочего каталога. Идея состоит в том, что каталог с демонстрационной банкой и содержимым можно переместить в новое место и по-прежнему работать.

Я пробовал следующие варианты, но все равно получаю ошибки 404.

ServletContextHandler context = 
                       new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");

context.getInitParams().put(
                       "org.eclipse.jetty.servlet.Default.resourceBase", "html");
context.addServlet(new ServletHolder(new DefaultServlet()), "/html");

Server jetty = new Server(8080);
jetty.setHandler(context);

jetty.start();

Обновление:Вот решение, описанное в руководстве по Jetty. Как упоминалось в правильном ответе, он использует ResourceHandlerвместоServletContextHandler:

    Server server = new Server();
    SelectChannelConnector connector = new SelectChannelConnector();
    connector.setPort(8080);
    server.addConnector(connector);

    ResourceHandler resource_handler = new ResourceHandler();
    resource_handler.setDirectoriesListed(true);
    resource_handler.setWelcomeFiles(new String[]{ "index.html" });

    resource_handler.setResourceBase(".");

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
    server.setHandler(handlers);

    server.start();
    server.join();
52
задан Cœur 8 February 2018 в 10:35
поделиться