嵌入式码头:资源文件夹中的服务器 html 文件
embedded jetty: server html file from resource folder
我正在尝试在我的应用程序中使用嵌入式码头服务器。我想提供一个仅使用 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
您的 ServletContextHandler
设置为 "/"
的 contextPath
。
这意味着您对 index.html
的访问权限应该是
http://localhost:7498/index.html
没有
http://localhost:7498/JettyServer/index.html
我正在尝试在我的应用程序中使用嵌入式码头服务器。我想提供一个仅使用 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
您的 ServletContextHandler
设置为 "/"
的 contextPath
。
这意味着您对 index.html
的访问权限应该是
http://localhost:7498/index.html
没有
http://localhost:7498/JettyServer/index.html