All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.yoojia.halo.server.WebServer Maven / Gradle / Ivy

The newest version!
package com.github.yoojia.halo.server;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;

import javax.servlet.DispatcherType;
import javax.servlet.Filter;
import java.util.EnumSet;

/**
 * @author YOOJIA.CHEN ([email protected])
 */
public class WebServer {

    private final String webApp;
    private final int port;

    public WebServer(int port) {
        this("src/main/webapp", port);
    }

    public WebServer(String webApp, int port) {
        this.webApp = webApp;
        this.port = port;
    }

    /**
     * Run server
     * @throws Exception
     */
    public void run() throws Exception {
        final Server server = new Server(port);
        server.setHandler(new WebAppContext(webApp, "/"));
        server.start();
        server.join();
        server.stop();
    }

    /**
     * Run server
     * @param filter
     * @throws Exception
     */
    public void run(Class filter) throws Exception {
        final Server server = new Server(port);
        final WebAppContext app = new WebAppContext(webApp, "/");
        app.addFilter(filter, "/*", EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.FORWARD));
        server.setHandler(app);
        server.start();
        server.join();
        server.stop();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy