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());
            }
        }
        
        
    }
  • 相关阅读:
    配置 Sublime Text 用 Node.js 执行 JavaScript 程序
    KNN算法
    堆排序(heap sort)
    复原二叉树
    二叉树的广度优先遍历(层次遍历)
    二叉树(BT)相关
    BST(二叉搜索树)相关
    二叉树遍历(先序、中序、后序)
    排序算法
    查找算法
  • 原文地址:https://www.cnblogs.com/hehaiyang/p/4113846.html
Copyright © 2011-2022 走看看