Domanda

OK, questo è un po 'correlato a: Uso del molo per installare ed eseguire i test servlet a livello di codice

ottengono ottime risposte lì e sono stati in grado di caricare i servlet a livello di codice ed è tutto fantastico.

Quello che vorrei fare è caricare un web.xml in un test (tutto nel percorso di classe) e farlo eseguire su un server (usando l'attuale percorso di classe) - Ho visto nei documenti come indicarlo una directory per farlo, ma voglio lavorare fuori dal classpath (meglio per i test sul posto). Sostanzialmente convalidando il mio web.xml.

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

È stato utile?

Soluzione

Sembra che quello che vuoi fare sia caricare un'applicazione web adeguata a livello di codice, invece di caricare singoli servlet (e penso che tu voglia farlo senza avere un file WAR completo su 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 dovrebbe contenere una directory WEB-INF e il tuo file web.xml dovrebbe vivere dentro li. Nient'altro ha bisogno di vivere all'interno di quella struttura di directory, poiché tutto il resto può essere caricato automaticamente dal tuo percorso di classe (anche se, se lo desideri, potresti creare un percorso per un vero file WAR o completare un albero WAR esploso).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top