嵌入式jetty:来自资源文件夹

时间:2015-12-08 12:02:27

标签: java embedded-jetty

我正在尝试在我的应用程序中使用嵌入式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

1 个答案:

答案 0 :(得分:1)

您的ServletContextHandler设置为contextPath "/"

这意味着您对index.html的访问权限应为

http://localhost:7498/index.html

http://localhost:7498/JettyServer/index.html