我需要运行Jetty,指定war-file并让它由Jetty解压缩到特定位置。 Jetty的常见行为是将TEMP目录或JETTY_HOME / work目录解压缩到一个名为this的子文件夹:jetty-HOST-PORT-CONTEXT.war -_- any- 这绝对不适合我们的环境,因为PORT部分是随机的。战争文件必须由Jetty解包,目的地必须100%灵活。
有可能吗?请指教。 Jetty不是我的专业领域,请原谅我,如果问题是蹩脚或微不足道,但Google搜索并没有多大帮助。
非常感谢!
答案 0 :(得分:5)
谢谢大家。我已设法通过以下代码实现扩展Jetty的要求:
int port = 8080;
String context_path = "/";
File tmp_directory = "C:\\some-custom-path\\";
String war_path = "C:\\path-to-a\\file.war";
WebAppContext app = new WebAppContext();
app.setContextPath( context_path );
app.setWar( war_path );
app.setTempDirectory( tmp_directory );
Server server = new Server( port );
server.setHandler( app );
server.start();
server.join();
app.setTempDirectory 调用使Jetty将war-file解压缩到自定义文件夹中。我没有找到任何其他方法,但解决方案适合我。
答案 1 :(得分:1)
(没试过,只是从维基页面jetty wiki阅读) 您可以将战争提取到预定义的目标。然后将该文件夹作为setWar参数提供。
Server server = new Server(8080);
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setWar(jetty_home+"/webapps/testlocation/");
server.setHandler(webapp);