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

com.weicoder.tomcat.TomcatServer Maven / Gradle / Ivy

package com.weicoder.tomcat;

import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.core.AprLifecycleListener;
import org.apache.catalina.startup.Tomcat;

import com.weicoder.common.C;
import com.weicoder.common.init.Inits;
import com.weicoder.common.log.Logs;
import com.weicoder.tomcat.params.TomcatParams; 
import com.weicoder.web.servlet.BasicServlet;  

/**
 * tomcat server
 * 
 * @author wudi
 */
public final class TomcatServer {
	// tomcat服务器
	private static Tomcat tomcat = null;

	/**
	 * 启动tomcat
	 */
	public static void start() {
		start(TomcatParams.PORT, TomcatParams.PATH);
	}

	/**
	 * 关闭tomcat
	 */
	public static void stop() {
		if (tomcat != null) {
			try {
				tomcat.stop();
			} catch (LifecycleException e) {
				Logs.error(e);
			}
		}
	}

	/**
	 * 启动tomcat
	 * 
	 * @param port 端口
	 * @param path 路径
	 */
	public static void start(int port, String path) {
		// 如果已经启动 返回
		if (tomcat != null) {
			Logs.warn("tomcat server port={} path={} already start");
			return;
		}
		try {
			// 声明tomcat 设置参数
			tomcat = new Tomcat();
			tomcat.setBaseDir(C.O.BASE_DIR);
			tomcat.setPort(port);
			// 声明Connector 设置参数
			Connector connector = new Connector(TomcatParams.PROTOCOL);
			connector.setPort(port);
			connector.addLifecycleListener(new AprLifecycleListener());
			tomcat.setConnector(connector);

			// 添加路径与servlet
			tomcat.addContext(path, C.O.BASE_DIR);
			tomcat.addWebapp(path, C.O.BASE_DIR).setReloadable(false);
			tomcat.addServlet(path, "basic", new BasicServlet()).addMapping("/*");
//			tomcat.addServlet(path, "basic", new TomcatServlet()).addMapping("/*");
//			tomcat.addServlet(path, "basic", "com.weicoder.web.servlet.BasicServlet").addMapping("/*");
			tomcat.enableNaming();

			// 初始化
			Inits.init();
			tomcat.init();

			// 启动
			tomcat.start();
			tomcat.getServer().await();
		} catch (Exception e) {
			Logs.error(e);
		}
	}

	private TomcatServer() {
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy