嵌入式码头:资源文件夹中的服务器 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