Carregando um web.xml para testes de integração com molhe
Pergunta
OK este é tipo de relacionados com: Usando cais para instalar e executar testes de servlet programaticamente
tem grandes respostas lá, e foram capazes de carregar servlets programaticamente e todos os seus feito de impressionante.
O que eu gostaria de fazer, porém, é carregar um web.xml em um teste (todos no classpath) e executá-lo de um servidor (usando o classpath atual) - que já vi em docs como apontá-lo para um diretório para fazer isso, mas eu quero trabalhar fora do classpath (melhor para nos testes lugar). Essencialmente validar meu web.xml.
(não é relevante, mas este aplicativo está em scala, mas tive nenhum problema com isso, tudo funciona como anunciado).
Solução
Parece que o que você quer fazer é carregar uma aplicação web adequado programaticamente, ao contrário de carregamento servlets individuais (e eu acho que você quer fazê-lo sem ter um arquivo WAR completo para trabalhar a partir de).
Server server = new Server( port );
WebAppContext root = new WebAppContext();
root.setWar("/path/to/somewhere");
root.setContextPath("/");
server.addHandler( root );
server.start();
O truque é que o /path/to/somewhere
deve conter um diretório WEB-INF
e seu arquivo web.xml
deve viver lá dentro. necessidades nada mais para viver dentro dessa estrutura de diretórios, como tudo o resto pode ser carregado automaticamente de seu classpath (embora se você queria, você poderia fazer que um caminho para um arquivo WAR real ou completa explodiu WAR árvore).