J'essaie de construire une application de démonstration simple avec Jetty intégré qui sert des fichiers statiques à partir d'un répertoire "html" qui est un sous-répertoire du répertoire de travail actuel. L'idée est que le répertoire contenant le jar et le contenu de la démo puisse être déplacé vers un autre endroit et continuer à fonctionner.
J'ai essayé des variantes de ce qui suit, mais j'obtiens toujours 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();
Mise à jour : Voici une solution telle que documentée dans le tutoriel Jetty. Comme mentionné dans la bonne réponse, elle utilise un fichier ResourceHandler
au lieu d'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();
0 votes
Fichier pom.xml qui fonctionne avec ça : code.google.com/p/ram-badger/source/browse/trunk/static-jetty/
1 votes
Cela ne semble pas fonctionner avec jetty 9...
1 votes
Si l'un d'entre eux rencontre les mêmes problèmes avec jetty 9 @voir - stackoverflow.com/questions/28346438/