Ich versuche, eine einfache Demo-App mit Embedded Jetty, die statische Dateien aus einem "Html" -Verzeichnis dient, die ein Unterverzeichnis des aktuellen Arbeitsverzeichnisses ist. Die Idee ist, dass das Verzeichnis mit dem Demo-Jar und Inhalt an einen neuen Ort verschoben werden kann und trotzdem funktioniert.Serving statische Dateien mit eingebetteten Jetty
Ich habe versucht, Variationen der folgenden, aber ich bekomme 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();
Update: Hier ist eine Lösung wie in der Jetty Tutorial dokumentiert. Wie in der richtigen Antwort erwähnt, verwendet es eine ResourceHandler
anstelle eines 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-Datei, die mit diesem Werk: https://code.google.com/p/ram-badger/source/browse/trunk/static-jetty/pom. xml – cwash
dies scheint nicht mit Anlegesteg 9 zu funktionieren ... –
wenn ein Gesicht gleiche Probleme mit Anlegesteg 9 @see - http://StackOverflow.com/Questions/28346438/resourcehandler-stop-hosting-files-with-jjety -9-404-nicht-gefunden-Fehler-funktioniert-fin –