好的,这与以下内容有关:使用jetty以编程方式安装和运行servlet测试
在那里得到了很好的答案,并且已经能够以编程方式加载servlet并且它们都非常棒.
然而,我想要做的是在测试中加载一个web.xml(所有在类路径中)并让它运行一个服务器(使用当前的类路径) - 我在docs中看到如何将它指向一个目录这样做,但我想在类路径上工作(更好地进行现场测试).基本上验证我的web.xml.
(它不相关,但这个应用程序是scala,但我没有问题,一切都像宣传的那样工作).
Ada*_*kin 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();
Run Code Online (Sandbox Code Playgroud)
诀窍是/path/to/somewhere应该包含一个WEB-INF目录,你的web.xml文件应该存在于那里.没有其他东西需要存在于该目录结构中,因为其他所有内容都可以从类路径中自动加载(尽管如果您愿意,可以将其作为实际WAR文件的路径或完整的爆炸WAR树).