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

com.blade.server.Server Maven / Gradle / Ivy

/**
 * Copyright (c) 2015, biezhi 王爵 ([email protected])
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * 	http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.blade.server;

import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

import blade.kit.log.Logger;

import com.blade.web.DispatcherServlet;

/**
 * Jetty Server
 *
 * @author	biezhi
 * @since	1.0
 */
public class Server {
	
	private static final Logger LOGGER = Logger.getLogger(Server.class);
	
	private int port = 9000;
	
	private boolean async = true;
	
	private org.eclipse.jetty.server.Server server;
	
	private ServletContextHandler context;
	
	public Server(int port, boolean async) {
		this.port = port;
		this.async = async;
	}
	
	public void setPort(int port){
		this.port = port;
	}
	
	public void setAsync(boolean async) {
		this.async = async;
	}

	public void start(String contextPath) throws Exception{
		
		server = new org.eclipse.jetty.server.Server(this.port);
		
	    context = new ServletContextHandler(ServletContextHandler.SESSIONS);
	    context.setContextPath(contextPath);
	    context.setResourceBase(System.getProperty("java.io.tmpdir"));
	    
	    ServletHolder servletHolder = new ServletHolder(DispatcherServlet.class);
	    servletHolder.setAsyncSupported(async);
	    
	    context.addServlet(servletHolder, "/");
        server.setHandler(this.context);
	    server.start();
//	    server.dump(System.err);
	    LOGGER.info("Blade Server Listen on 0.0.0.0:" + this.port);
	}
	
	public void join() throws InterruptedException {
		server.join();
	}
	
	public void stop() throws Exception{
		context.stop();
		server.stop();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy