使用jetty加载web.xml以进行集成测试

时间:2009-04-30 03:51:27

标签: java jvm jetty

好的,这与:Using jetty to install and run servlet tests programmatically

有关

在那里得到了很好的答案,并且能够以编程方式加载servlet并且它们都非常棒。

然而,我想要做的是在测试中加载一个web.xml(所有在类路径中)并让它运行一个服务器(使用当前的类路径) - 我在docs中看到如何指向它这样做的目录,但我想在类路径下工作(更好地进行现场测试)。基本上验证我的web.xml。

(它不相关,但这个应用程序是scala,但我对此没有任何问题,一切都按照宣传的方式工作)。

1 个答案:

答案 0 :(得分:13)

听起来你想要做的是以编程方式加载一个合适的Web应用程序,而不是加载单个servlet(我认为你想要在没有完整的WAR文件的情况下完成它)。

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

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

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

诀窍是/path/to/somewhere应该包含一个WEB-INF目录,而你的web.xml文件应该存在于那里。没有其他东西需要存在于该目录结构中,因为其他所有内容都可以从类路径中自动加载(尽管如果您愿意,可以将其作为实际WAR文件的路径或完整的爆炸WAR树)。