Я пытаюсь развернуть сервер Jetty из файла JAR. Когда jar запускается на сервере, он достигает страницы Jetty 404 как минимум, но не может достичь index.html
.
Мой основной класс для запуска сервера выглядит следующим образом и прекрасно работает локально при запуске через IDE на localhost:
public static void main(String[] args) {
Server server = new Server(8080);
ServletContextHandler servletContextHandler = new ServletContextHandler(NO_SESSIONS);
servletContextHandler.setContextPath("/");
DefaultServlet defaultServlet = new DefaultServlet();
ServletHolder holderPwd = new ServletHolder("default", defaultServlet);
final URL htmlDirectory = JerseyApplication.class.getResource("/html");
holderPwd.setInitParameter("resourceBase", htmlDirectory.getFile());
servletContextHandler.addServlet(holderPwd, "/*");
server.setHandler(servletContextHandler);
ServletHolder servletHolder = servletContextHandler.addServlet(ServletContainer.class, "/api/*");
servletHolder.setInitOrder(0);
servletHolder.setInitParameter(
"jersey.config.server.provider.packages",
"com.x.y.z.parser");
try {
LOGGER.info("Starting server");
server.start();
server.join();
}
catch (Exception ex) {
LOGGER.error("Server failed to start - Aborting");
ex.printStackTrace();
}
finally {
LOGGER.info("Destroying server");
server.destroy();
}
}
Все html-файлы находятся в каталоге src/main/resources/html
.
Когда я запускаю jar tvf jarfile.jar | grep html
, я вижу каталог html
и его содержимое там:
0 Thu Nov 01 11:48:46 UTC 2018 html/
2258 Thu Nov 01 11:48:46 UTC 2018 html/formRequest.js
871 Thu Nov 01 11:48:46 UTC 2018 html/index.html
Спасибо!