8

好的,这与以下内容有关:Using jetty to install and run servlet tests programmatically

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

然而,我想做的是在测试中加载一个 web.xml(全部在类路径中)并让它运行一个服务器(使用当前的类路径)——我在文档中看到了如何将它指向一个目录这样做,但我想处理类路径(更适合就地测试)。基本上验证了我的 web.xml。

(它不相关,但这个应用程序在 scala 中,但我对此没有任何问题,一切都像宣传的那样工作)。

4

1 回答 1

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 树)。

于 2009-08-07T13:34:06.230 回答