2013-02-19 12 views
8

E 'possibile utilizzare Jetty incorporato per servire file statici dalla directory X ma mappati all'URL Y? Ho file statici memorizzati nella directory "web", ma voglio che l'URL sia qualcosa come http://host/myapp.Molo mappa ResourceHandler a un URL

Ho eseguito già con successo un server configurato con ResourceHandler nel seguente modo:

ResourceHandler ctx = new ResourceHandler(); 
ctx.setResourceBase("path-to-web"); 
HandlerList list = new HandlerList(); 
list.addHandler(ctx); 
... 
server.setHandler(list); 

ma il risultato è che servono i file sotto /web e non sotto la mappatura URL desiderato.

risposta

18

Il ResourceHandler non ha un contesto configurabile, ma è sufficiente racchiuderlo in un ContextHandler per ottenere ciò.

Prova a modificare:

ResourceHandler resHandler = new ResourceHandler(); 
resHandler.setResourceBase("path-to-web"); 
ContextHandler ctx = new ContextHandler("/my-files"); /* the server uri path */ 
ctx.setHandler(resHandler); 
server.setHandler(ctx); 

che serviranno /my-files come il contenuto ResourceHandler del filesystem path-to-web

1
È possibile che questo

non funziona per Jetty 9, ma questo fa:

ContextHandler contextHandler = new ContextHandler("/my-files"); 
contextHandler.setResourceBase("/tmp/static"); 

ResourceHandler resourceHandler = new ResourceHandler(); 
contextHandler.setHandler(resourceHandler); 

server.setHandler(contextHandler); 
+0

questo sembra non funzionare con il molo 9. Potresti fornire un link ad alcuni documenti? –

+0

Ho creato una domanda separata per il molo 9 - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty-9-404-not-found-error-works-fin Sarà felice se mi dai un suggerimento –

Problemi correlati