Estoy tratando de construir una aplicación de demostración simple con Jetty integrado que sirve archivos estáticos de un directorio "html" que es un subdirectorio del directorio de trabajo actual. La idea es que el directorio con el demo jar y el contenido se puedan mover a una nueva ubicación y seguir funcionando.Sirviendo archivos estáticos con Jetty
He intentado variaciones de lo siguiente, pero sigo recibiendo 404s.
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();
Actualización: he aquí una solución tal como se documenta en el tutorial embarcadero. Como se mencionó en la respuesta correcta, se utiliza una ResourceHandler
en lugar de un 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();
pom.xml que funciona con esto: https://code.google.com/p/ram-badger/source/browse/trunk/static-jetty/pom. xml – cwash
esto no parece funcionar con el muelle 9 ... –
si una misma cara tiene problemas con el muelle 9 @see - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty -9-404-not-found-error-works-fin –