58 votes

Servir des fichiers statiques avec Jetty intégré

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/

0voto

will Points 449

Jetez un coup d'œil à la solution ici :

Il s'agit d'une solution de contournement admise, et dont le fonctionnement est garanti sous Linux et Windows. Pour les lecteurs, il est problématique de faire ou de prétendre que les ressources web statiques sont des flux de ressources.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X