2013-02-19 1 views
8

임베디드 Jetty를 사용하여 디렉토리 X에서 정적 파일을 제공 할 수 있습니까? 정적 파일은 "web"디렉토리에 저장되어 있지만 URL은 http://host/myapp과 같아야합니다.URL에 jetty ResourceHandler 맵핑

는 이미 성공적으로 다음과 같은 방법으로 ResourceHandler로 구성된 서버를 실행 한 :

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

을하지만 결과는 아닌 원하는 URL 매핑에서 /web 아래에있는 파일을 제공하고있다.

답변

18

ResourceHandler는 컨텍스트를 구성 할 수 없지만이를 구현하기 위해 ContextHandler로 감쌀 수 있습니다.

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

파일 시스템 위의 path-to-web

1

부두 9 작동하지 않습니다의 ResourceHandler 내용으로 /my-files를 제공합니다,하지만이 작업을 수행합니다 :

대신이 시도

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

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

server.setHandler(contextHandler); 
+0

이것은 부두에서 일하지 않는 것 같습니다. 9. 일부 문서에 대한 링크를 제공 할 수 있습니까? –

+0

부두 9에 대한 별도의 질문을 만들었습니다. - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty-9-404-not-found-error-works-fin 당신이 나에게 힌트를 주면 기뻐. –