Frage

OK ist diese Art der im Zusammenhang mit: Mit Steg installieren und Ausführen von Servlets Tests programmatisch

bekam es große Antworten und in der Lage gewesen Servlets programmatisch zu laden und seine alle super gemacht.

Was würde Ich mag aber tun, ist eine web.xml in einem Test (alle im Classpath) laden und haben sie einen Server laufen nach oben (die aktuelle Classpath verwenden) - Ich habe in docs gesehen, wie man es deuten auf ein Verzeichnis zu tun, aber ich möchte die classpath (besser an Ort und Stelle Prüfungen) abzuarbeiten. Im Wesentlichen Validierung meine web.xml.

(es ist nicht relevant, aber diese App in scala ist, aber ich habe kein Problem mit, dass hatte, alles funktioniert wie beworben).

War es hilfreich?

Lösung

Es klingt wie das, was Sie tun möchten, ist programmatisch eine richtige Web-Anwendung zu laden, wie zum Laden einzelner Servlets Gegensatz (und ich glaube, Sie es tun wollen, ohne eine vollständige WAR-Datei mit aus arbeiten).

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

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

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

Der Trick besteht darin, dass die /path/to/somewhere ein WEB-INF Verzeichnis und Ihre web.xml Datei sollte innerhalb dort leben enthalten sollte. Nichts anderes muss innerhalb dieser Verzeichnisstruktur leben, wie alles anderes automatisch von Ihrem Classpath geladen werden kann (obwohl, wenn Sie wollen, Sie, dass ein Weg zu einer tatsächlichen WAR-Datei oder vollständig explodierten IST Baum machen könnten).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top