2009-04-30 14 views
8

OK questo è una specie di legato a: Using jetty to install and run servlet tests programmaticallyCaricando un web.xml per le prove di integrazione con molo

ottenuto grandi risposte lì, e sono stati in grado di caricare fino servlet di programmazione ed è tutto fatto di impressionante.

Quello che vorrei fare è caricare un web.xml in un test (tutto nel classpath) e farlo girare su un server (usando il classpath corrente) - Ho visto nei documenti come indicarlo in una directory per farlo, ma voglio lavorare sul classpath (meglio per test sul posto). Convalida essenzialmente il mio web.xml.

(non rilevante, ma questa app è in scala, ma non ho avuto problemi con questo, tutto funziona come pubblicizzato).

+0

Non vedo il tuo problema - cosa intendi con "tutto nel classpath"? Come ho capito, vorresti avviare un Jetty con un certo web.xml. Questo dovrebbe essere un problema, copia il web.xml con uno script e avvia il Jetty. – Mork0075

+0

In realtà voglio eseguirlo con i test - non avviarlo come processo separato (che funziona bene, ma non è ordinato come un test dell'unità in elaborazione) - è solo una questione di comodità. –

risposta

13

Sembra che ciò che si vuole fare sia caricare un'applicazione Web appropriata in modo programmatico, anziché caricare singoli servlet (e penso che si voglia farlo senza avere un file WAR completo a cui lavorare).

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

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

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

Il trucco è che il /path/to/somewhere deve contenere una directory WEB-INF e il file web.xml dovrebbe vivere dentro. Nient'altro ha bisogno di vivere all'interno di quella struttura di directory, dato che tutto il resto può essere caricato automaticamente dal classpath (anche se lo si volesse, si potrebbe creare un percorso per un vero file WAR o completare un albero WAR esploso).

+0

sì - questo è quello che ho finito per fare. e funziona bene. –

+0

(ed è veloce! Ottimo per i test "unitari" che sono davvero più di un test unitario!) - grazie per aver aggiornato questo post. –

Problemi correlati