我最近开始通过名为Zap的工具检查我们的Web应用程序的安全漏洞。运行后我发现我要在我们的webapp中包含robots.txt 该工具正在webapp的根目录中查找该文件(https://localhost:8080)并在那里显示该文件,但它会抛出错误,说“找不到文件”。 我正在运行的Web服务器是Jetty-9.3.8,以下是webapp的树结构
etc
- webdefault.xml
webapps
- myapp
- web.xml
- generated-web.xml
robots.txt
我们使用嵌入式jetty来启动服务器。像这样:
WebAppContext context = new WebAppContext();
context.setContextPath("/myapp");
context.setWar(jettyHome + "/webapps/myapp/");
context.setDefaultsDescriptor(jettyHome + "/etc/webdefault.xml");
File overrideFile = new File(jettyHome
+ "/webapps/myapp/WEB-INF/generated-web.xml");
if (overrideFile.exists()) {
context.setOverrideDescriptor(jettyHome
+ "/webapps/myapp/WEB-INF/generated-web.xml");
}
server.setHandler(context);
server.start();
因此,如何将文件放在根目录中并不是我得到的。 有人对此有任何想法吗?
答案 0 :(得分:1)
您需要提供contextPath
/
WebAppContext
内容的静态内容才能发挥作用。
添加另一个ServletContextPath
或ResourceHandler
或context.setContextPath("/")
来提供该文件。确保你有......
context.setBaseResource(Resource.newResource("uri/path/to/my/static/content")
设置