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

org.rootservices.otter.server.HttpServer Maven / Gradle / Ivy

package org.rootservices.otter.server;


import org.rootservices.otter.config.OtterAppFactory;
import org.rootservices.otter.server.container.ServletContainer;
import org.rootservices.otter.server.container.ServletContainerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;


public class HttpServer {
    private static final Logger logger = LoggerFactory.getLogger(HttpServer.class);

    public static void run(HttpServerConfig config) {
        ServletContainer server = makeServer(config);

        try {
            logger.info("server starting");
            server.start();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }

        try {
            server.join();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }

    }

    public static ServletContainer makeServer(HttpServerConfig config) {
        OtterAppFactory otterAppFactory = new OtterAppFactory();
        ServletContainerFactory servletContainerFactory = otterAppFactory.servletContainerFactory();

        ServletContainer server = null;
        try {
            server = servletContainerFactory.makeServletContainer(
                config.getDocumentRoot(), config.getClazz(), config.getPort(), config.getRequestLog(), config.getErrorPages()
            );
        } catch (URISyntaxException e) {
            logger.error(e.getMessage(), e);
        } catch (MalformedURLException e) {
            logger.error(e.getMessage(), e);
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }

        return server;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy