Я пытаюсь создать простое демонстрационное приложение со встроенным 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();