zoukankan      html  css  js  c++  java
  • 嵌入式Tomcat Web服务器的使用

      在运行web工程时,常常要频繁启动tomcat,使用嵌入式tomcat可以减少部分重复操作。

    1、下载tomcat5.0.28embed.zip 解压文件夹复制到工程下。

      http://archive.apache.org/dist/tomcat/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28-embed.zip

    2、源码实现

    import java.io.File;
    import javax.servlet.ServletException;
    import org.apache.catalina.LifecycleException;
    import org.apache.catalina.core.AprLifecycleListener;
    import org.apache.catalina.core.StandardServer;
    import org.apache.catalina.startup.Tomcat;
    import org.apache.juli.logging.Log;
    import org.apache.juli.logging.LogFactory;
    
    public class WebStart {
        private final Log log = LogFactory.getLog(getClass());
        private static String CONTEXT_PATH = "";
        private static String PROJECT_PATH = System.getProperty("user.dir");// 工程物理的绝对路径
        private static String WEB_APP_PATH = PROJECT_PATH + File.separatorChar
                + "WebRoot";
        private static String CATALINA_HOME = PROJECT_PATH + "/Embedded/Tomcat";
        private Tomcat tomcat = new Tomcat();
        private int port;
    
        public WebStart(int port) {
            this.port = port;
        }
    
        public void start(){
            tomcat.setPort(port);
            tomcat.setBaseDir(CATALINA_HOME);
            tomcat.getHost().setAppBase(WEB_APP_PATH);
            try {
                StandardServer server = (StandardServer) tomcat.getServer();
                AprLifecycleListener listener = new AprLifecycleListener();
                server.addLifecycleListener(listener);
                tomcat.addWebapp(CONTEXT_PATH, WEB_APP_PATH);
            } catch (ServletException e) {
                e.printStackTrace();
                log.error(e.getMessage());
            }
            try {
                tomcat.start();
                log.info("Tomcat started success !");
                tomcat.getServer().await();
            } catch (LifecycleException e) {
                e.printStackTrace();
                log.error(e.getMessage());
            }
        }
    
        public void stop(){
            try {
                tomcat.stop();
                log.info("Tomcat has stoped !");
            } catch (LifecycleException e) {
                e.printStackTrace();
                log.error(e.getMessage());
            }
        }
    
        public void setPort(int port) {
            this.port = port;
        }
    
        public int getPort() {
            return this.port;
        }
    
        public static void main(String[] args){
            WebStart tomcat = new WebStart(8080);
            try {
                tomcat.start();
            } catch (Exception e) {
                System.out.println("Tomcat Start error !"+"
    "+e.toString());
            }
        }
        
        
    }
  • 相关阅读:
    常见局域网类别
    精确率,召回率,准确率
    create-react-app创建第一个react程序_windows8.1
    编码与解码
    深度学习---嵌套简记
    反向传播算法简记
    MarkDown语法简记
    Vscode中的配置文件的作用简述
    wireshark 更好的查看TCP协议的数据,跟踪tcp流程
    wireshark 基础,颜色规则,过滤条件使用与多条过滤
  • 原文地址:https://www.cnblogs.com/hehaiyang/p/4113846.html
Copyright © 2011-2022 走看看