我正在尝试在我的应用程序中使用嵌入式jetty服务器。我想提供一个只使用html和javascript的html页面。我正在使用maven,我把文件放在src/main/resources/html/
。
这是我的代码:
Server server = new Server(7498);
URL url = Main.class.getClassLoader().getResource("html/");
URI webRootUri = url .toURI();
ServletContextHandler context = new ServletContextHandler(
ServletContextHandler.SESSIONS);
context.setContextPath("/");
context.setBaseResource(Resource.newResource(webRootUri));
context.setWelcomeFiles(new String[] { "index.html" });
ServletHolder holderPwd = new ServletHolder("default",
DefaultServlet.class);
holderPwd.setInitParameter("dirAllowed", "true");
context.addServlet(holderPwd, "/");
server.setHandler(context);
try {
server.start();
server.dump(System.err);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
我收到此错误:
Problem accessing /JettyServer/index.html. Reason:
Not Found
为什么它仍然在/JettyServer/index.html中查找?如何让它查看资源文件夹?
修改
webRootUri是
file:/D:/Workspaces/Eclipse/Eclipse_SE/CDP/target/classes/html/
在HTML文件夹中,有我的index.html
答案 0 :(得分:1)
您的ServletContextHandler
设置为contextPath
"/"
。
这意味着您对index.html
的访问权限应为
http://localhost:7498/index.html
不
http://localhost:7498/JettyServer/index.html