在運行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 !"+"\n"+ e.toString()); } } }
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
