首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以编程方式向Jetty添加资源

以编程方式向Jetty添加资源
EN

Stack Overflow用户
提问于 2010-09-15 21:44:48
回答 2查看 9.7K关注 0票数 7

我有一个配置和启动Jetty的主类。(这是Wicket用于测试not应用程序的标准实践,但它实际上不是特定于wicket的。)

代码语言:javascript
运行
复制
final Server server = new Server();
//skipped socketconnector initialization

final WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
server.addHandler(bb);
server.start();

如您所见,src/main/webapp用作webapp根目录。但是,我有一些资源在目标/类中,稍后会复制到webapp中。所以我想把虚拟目录添加到jetty中。

我想将target/classes/js映射到/js,将target/classes/css映射到/css

有人能帮上忙吗?

顺便说一句:它是jetty 6.1.4

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-16 03:44:41

为每个虚拟目录添加WebAppContext

代码语言:javascript
运行
复制
final Server server = new Server();
//skipped socketconnector initialization

final WebAppContext js = new WebAppContext();
js.setServer(server);
js.setContextPath("/js");
js.setWar("target/classes/js"); // or whatever the correct path is in your case
server.addHandler(js);

// css the same way

final WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
server.addHandler(bb);

server.start();
票数 8
EN

Stack Overflow用户

发布于 2010-09-16 18:45:50

为了完整起见,下面是我一直使用的变通方法:

代码语言:javascript
运行
复制
final Server server = new Server();
//skipped socketconnector initialization

final WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
final URL url = new File("target/classes").getAbsoluteFile().toURI().toURL();
final Resource resource = new FileResource(url);
final ResourceHandler handler = new ResourceHandler();
handler.setBaseResource(resource);
server.addHandler(handler);
server.addHandler(bb);
server.start();

但它并不是很优雅,它将所有内容挂载到目标/类中,并且只使用webapp作为后备。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3718221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档