Jetty:解压缩.war到特定文件夹

时间:2012-03-01 15:11:28

标签: java jetty war

我需要运行Jetty,指定war-file并让它由Jetty解压缩到特定位置。 Jetty的常见行为是将TEMP目录或JETTY_HOME / work目录解压缩到一个名为this的子文件夹:jetty-HOST-PORT-CONTEXT.war -_- any- 这绝对不适合我们的环境,因为PORT部分是随机的。战争文件必须由Jetty解包,目的地必须100%灵活。

有可能吗?请指教。 Jetty不是我的专业领域,请原谅我,如果问题是蹩脚或微不足道,但Google搜索并没有多大帮助。

非常感谢!

2 个答案:

答案 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);