私は現在の作業ディレクトリのサブディレクトリである "html"ディレクトリから静的ファイルを提供する埋め込みJettyを使って簡単なデモアプリケーションを構築しようとしています。アイデアは、デモ用のjarとコンテンツを含むディレクトリを新しい場所に移動しても動作させることができるということです。Jettyが埋め込まれた静的ファイルの処理
私は以下のバリエーションを試しましたが、私は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();
更新:突堤のチュートリアルに記載されているようにここソリューションです。正しい答えで述べたように、それは代わりにServletContextHandler
のResourceHandler
を使用しています。
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
これはjetty 9で動作しないようです... –
jetty 9と同じ問題が発生している場合は、この問題が発生します。@see - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty -9-404-not-found-error-works-fin –