2013-02-19 6 views
8

Ist es möglich, mithilfe von Embedded Jetty statische Dateien aus dem Verzeichnis X bereitzustellen, aber der URL Y zugeordnet? Ich habe statische Dateien im Verzeichnis "Web" gespeichert, aber ich möchte die URL etwas wie http://host/myapp sein.Map jetty ResourceHandler zu einer URL

Ich habe bereits lief erfolgreich einen Server mit ResourceHandler in der folgenden Art und Weise konfiguriert:

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

Aber das Ergebnis wird dazu dienen, die Dateien unter /web und nicht unter der gewünschten URL-Zuordnung.

Antwort

18

Der ResourceHandler hat keinen Kontext konfigurierbar, aber Sie können ihn einfach in einen ContextHandler einfügen, um dies zu erreichen.

Versuchen Sie stattdessen:

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); 

Das /my-files als ResourceHandler Inhalt des Dateisystems path-to-web

1

Die oben nicht für Jetty dienen 9 funktioniert, aber dies tut:

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

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

server.setHandler(contextHandler); 
+0

dies scheint nicht mit Anlegesteg 9 zu funktionieren. Könnten Sie einen Link zu einem Dokument bereitstellen? –

+0

Ich habe eine separate Frage für Anlegesteg 9 erstellt - http://StackOverflow.com/Questions/28346438/resourcehandler-stop-hosting-files-with-jjety-9-404-not-found-error-works-fin wird froh, wenn du mir einen Hinweis gibst –