将jetty ResourceHandler映射到URL

将jetty ResourceHandler映射到URL,jetty,embedded-jetty,Jetty,Embedded Jetty,是否可以使用嵌入式Jetty提供来自目录X但映射到URL Y的静态文件?我有静态文件存储在目录“web”下,但我希望URL类似于http://host/myapp 我已经通过以下方式成功运行了配置了ResourceHandler的服务器: ResourceHandler ctx=newresourcehandler(); setResourceBase(“web路径”); HandlerList=新的HandlerList(); addHandler(ctx); ... setHandler(列

是否可以使用嵌入式Jetty提供来自目录X但映射到URL Y的静态文件?我有静态文件存储在目录“web”下,但我希望URL类似于
http://host/myapp

我已经通过以下方式成功运行了配置了
ResourceHandler
的服务器:

ResourceHandler ctx=newresourcehandler();
setResourceBase(“web路径”);
HandlerList=新的HandlerList();
addHandler(ctx);
...
setHandler(列表);

但是结果是在
/web
下提供文件,而不是在所需的URL映射下提供文件。

ResourceHandler没有可配置的上下文,但您可以简单地将其包装在ContextHandler中实现这一点

请尝试以下方法:

ContextHandler ctx=newcontexthandler(“/myfiles”);/*服务器uri路径*/
ResourceHandler resHandler=新的ResourceHandler();
setResourceBase(“web路径”);
setHandler(resHandler);
setHandler(ctx);

它将
/my files
作为文件系统
web路径的ResourceHandler内容

上述内容不适用于Jetty 9,但它确实适用于:

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

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

server.setHandler(contextHandler);

这似乎不适用于jetty 9。你能提供一些文档的链接吗?我已经为jetty 9创建了一个单独的问题-如果你给我一个提示,我会很高兴的