Sea*_*oyd 7 java jetty embedded-jetty
我有一个主类配置和启动Jetty.(这是Wicket测试webapp的标准做法,但它确实不是特定于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();
Run Code Online (Sandbox Code Playgroud)
如您所见,src/main/webapp用作webapp root.但是,我有一些目标/类中的资源,稍后会复制到webapp.所以我想向jetty添加虚拟目录.
我想映射target/classes/js到/js和target/classes/css到/css
有人可以帮忙吗?
顺便说一句:这是码头6.1.4
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();
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这是我一直在使用的解决方法:
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();
Run Code Online (Sandbox Code Playgroud)
但它不是很优雅,它将所有内容安装在目标/类中,并仅使用 web 应用程序作为后备。
| 归档时间: |
|
| 查看次数: |
9550 次 |
| 最近记录: |