好的,这与以下内容有关:使用码头来以编程方式安装和运行servlet测试

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

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

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

有帮助吗?

解决方案

听起来你想要做的是以编程方式加载一个合适的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树)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top