Pregunta

Bien, esto está relacionado con: Uso de jetty para instalar y ejecutar las pruebas de servlet mediante programación

obtuve excelentes respuestas allí, y he podido cargar servlets programáticamente y todo está hecho de asombroso.

Sin embargo, lo que me gustaría hacer es cargar un web.xml en una prueba (todo en la ruta de clase) y hacer que se ejecute un servidor (usando la ruta de clase actual). He visto en documentos cómo señalarlo. un directorio para hacer eso, pero quiero trabajar fuera de la ruta de clase (mejor para pruebas en el lugar). Esencialmente validando mi web.xml.

(no es relevante, pero esta aplicación está en scala, pero no he tenido ningún problema con eso, todo funciona como se anuncia).

¿Fue útil?

Solución

Parece que lo que quieres hacer es cargar una aplicación web adecuada de forma programática, en lugar de cargar servlets individuales (y creo que quieres hacerlo sin tener un archivo WAR completo para trabajar).

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

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

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

El truco es que / path / to / somewhere debe contener un directorio WEB-INF y su archivo web.xml debe estar activo en el interior hay. Nada más necesita vivir dentro de esa estructura de directorios, ya que todo lo demás puede cargarse automáticamente desde su ruta de clases (aunque si lo desea, puede hacer que sea una ruta a un archivo WAR real o completar el árbol WAR explotado).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top