我正尝试使用嵌入式Jetty构建一个简单的演示应用程序,该应用程序从“html”目录提供静态文件,该目录是当前工作目录的子目录。这个想法是,带有演示jar和内容的目录可以被移动到新的位置并且仍然可以工作。使用嵌入式Jetty服务静态文件
我试过以下的变体,但我一直在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();
更新:这里是作为记录在码头教程的解决方案。由于对正确答案提到的,它采用了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();
pom.xml文件,随着这一工程:https://code.google.com/p/ram-badger/source/browse/trunk/static-jetty/pom。 xml – cwash 2013-07-31 06:31:32
这似乎不适用于码头9 ... – 2015-02-05 13:53:55
如果一个人面临同样的问题与码头9 @see - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty -9-404-not-found-error-works-fin – 2015-02-05 14:31:15