我有一个配置和启动Jetty的主类。(这是Wicket用于测试not应用程序的标准实践,但它实际上不是特定于wicket的。)
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
发布于 2010-09-16 03:44:41
为每个虚拟目录添加WebAppContext
:
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();
发布于 2010-09-16 18:45:50
为了完整起见,下面是我一直使用的变通方法:
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作为后备。
https://stackoverflow.com/questions/3718221
复制相似问题