java - 使用嵌入式 Jetty 在根上下文中提供 index.html

标签 java jetty

通过以下代码,我可以在/处提供我的 View ,并在/rest 处提供我的 REST API。目前,我没有使用 web.xml。

我可以使用 Jetty 或在不定义 web.xml 的情况下在/处提供/index.html 吗? (这是我正在构建的框架的一部分 - 如果可能的话,我想避免生成文件)。

protected RESTServer(int port, Class<?> api, String path) {
        // Server
        this.server = new org.eclipse.jetty.server.Server(port);

        // REST
        ServletContextHandler restHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
        restHandler.setContextPath(path);

        ServletHolder servlet = restHandler.addServlet(ServletContainer.class, "/rest/*");
        servlet.setInitOrder(0);
        servlet.setInitParameter(JERSEY_PROVIDER, api.getCanonicalName());

         // Web
        ResourceHandler webHandler = new ResourceHandler();
        webHandler.setDirectoriesListed(true);
        webHandler.setResourceBase("src/main/webapp");
        webHandler.setWelcomeFiles(new String[]{"index.html"});

        // Server
        HandlerCollection handlers = new HandlerCollection();
        handlers.addHandler(webHandler);
        handlers.addHandler(restHandler);
        server.setHandler(handlers);
}

最佳答案

这是我想出的解决方案。它需要 Jetty webapp 依赖项。

protected RESTServer(int port, Class<?> api, String path) {
        this.server = new org.eclipse.jetty.server.Server(port);
        WebAppContext webAppContext = new WebAppContext();
        webAppContext.setResourceBase("src/main/webapp");
        ServletHolder restServlet = webAppContext.addServlet(ServletContainer.class, "/rest/*");
        restServlet.setInitOrder(0);
        restServlet.setInitParameter(JERSEY_PROVIDER, api.getCanonicalName());
        HandlerCollection handlers = new HandlerCollection();
        handlers.addHandler(webAppContext);
        server.setHandler(handlers);
}

关于java - 使用嵌入式 Jetty 在根上下文中提供 index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379800/

相关文章:

jetty - Jetty 是否支持 HTTP 分块响应/传输编码?

java - 嵌入式 Jetty 和复杂的日志记录

java - Android get Day of week from date 为一周中的同一天返回不同的值

java - 通过 https (Ubuntu 16.04) 设置 Nexus 3

java - jetty WebSocket

java - 设置 Jetty 服务器

java - 从 Java 调用其中包含游标和时态表的 MS Sql 服务器存储过程?

java - 使用 JApplet 绘制星星

java - 如何终止阻止另一个实例运行的 spring 批处理作业?

java - 用于通用应用程序消息传递的 snmp 陷阱 OID 是什么?