Jetty: распаковать .war в определенную папку - PullRequest
5 голосов
/ 01 марта 2012

Мне нужно запустить Jetty, указать war-файл и распаковать его в указанное место. Обычное поведение Jetty - взять каталог TEMP или каталог JETTY_HOME / work и распаковать war-файл в подпапку с таким названием: jetty-HOST-PORT-CONTEXT.war -_- any- Это абсолютно не подходит для нашей среды, потому что часть PORT случайна. Военный файл должен быть распакован Jetty, а пункт назначения должен быть на 100% гибким.

Возможно ли это? Пожалуйста посоветуй. Пристани не моя область знаний, простите, если вопрос хромает или банален, однако поиск в Google не сильно помог.

Большое спасибо!

Ответы [ 2 ]

5 голосов
/ 03 марта 2012

Спасибо всем. Мне удалось выполнить требование по расширению 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-файл в пользовательскую папку. Я не нашел другого выхода, но решение меня устраивает.

1 голос
/ 01 марта 2012

(не пробовал, просто чтение со страницы вики jetty wiki ) Вы можете извлечь войну в предопределенную директорию.А затем укажите эту папку в качестве аргумента setWar.

    Server server = new Server(8080);
    WebAppContext webapp = new WebAppContext();
    webapp.setContextPath("/");
    webapp.setWar(jetty_home+"/webapps/testlocation/");
    server.setHandler(webapp);
...