Загрузка web.xml для интеграционных тестов с Jetty - PullRequest
8 голосов
/ 30 апреля 2009

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

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

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

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

1 Ответ

13 голосов
/ 07 августа 2009

Звучит так, как будто вы хотите программно загрузить нужное веб-приложение, а не загружать отдельные сервлеты (и я думаю, что вы хотите сделать это без полного файла 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).

...