Загрузка web.xml для интеграционных тестов с Jetty

StackOverflow https://stackoverflow.com/questions/805280

  •  03-07-2019
  •  | 
  •  

Вопрос

ОК, это как-то связано с: Использование jetty для программной установки и запуска тестов сервлетов

получил там отличные ответы и смог программно загружать сервлеты, и все это просто потрясающе.

Однако я хотел бы загрузить web.xml в тесте (все в пути к классам) и запустить сервер (используя текущий путь к классам) - я видел в документах, как указать его на каталог для сделайте это, но я хочу отработать путь к классам (лучше для тестирования на месте).По сути, проверка моего web.xml.

(это не имеет значения, но это приложение находится в Scala, но у меня не было с этим проблем, все работает, как рекламируется).

Это было полезно?

Решение

Похоже, что вы хотите программно загрузить правильное веб-приложение, а не загружать отдельные сервлеты (и я думаю, вы хотите сделать это, не имея полного файла WAR для работы).

Server server = new Server( port );
WebAppContext root = new WebAppContext();

root.setWar("/path/to/somewhere");
root.setContextPath("/");

server.addHandler( root );
server.start();

Хитрость в том, что /path/to/somewhere должен содержать WEB-INF каталог и ваш web.xml файл должен жить там.Ничего больше не должно находиться в этой структуре каталогов, поскольку все остальное может быть автоматически загружено из вашего пути к классам (хотя, если вы хотите, вы можете сделать это путем к реальному файлу WAR или полному развернутому дереву WAR).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top