Jarod@termainal$ tail * >> blog

          A Developer's Notebook

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            24 Posts :: 9 Stories :: 12 Comments :: 0 Trackbacks
          測試環境:
          tomcat-6.0.14
          ubuntu gusty
          sun-jdk-1.6

          多個人合作的項目里只要修改tomcat-conf.properties文件后即可使用。我這里用了slf4j做LOG,不用LOG的把相關類去掉即可。還有我是把tomcat/lib下的jar都加進classpath的。

          目錄結構
          /-|projectHome
            |
            |--src
            |   |--TomcatServer.java
            |   |--tomcat-conf.properties
            |
            |--webapp
            |   |--WEB-INF
            |   |   |-web.xml

          TomcatServer.java:
           1 import java.io.File;
           2 import java.io.IOException;
           3 import java.util.Properties;
           4 
           5 import org.apache.catalina.Context;
           6 import org.apache.catalina.Engine;
           7 import org.apache.catalina.Host;
           8 import org.apache.catalina.LifecycleException;
           9 import org.apache.catalina.startup.Embedded;
          10 import org.slf4j.Logger;
          11 import org.slf4j.LoggerFactory;
          12 
          13 /**
          14  * http://www.aygfsteel.com/jarod
          15  * @author jarod
          16  */
          17 public class TomcatServer {
          18 
          19     private static final Logger logger = LoggerFactory
          20             .getLogger(TomcatServer.class);
          21 
          22     public static void main(String[] args) {
          23         try {
          24             new TomcatServer();
          25         } catch (Throwable t) {
          26             logger.error("", t);
          27         }
          28     }
          29 
          30     private Embedded tomcat;
          31 
          32     // tomcat主目錄
          33     private String catalinaHome;
          34 
          35     private String projectHome;
          36 
          37     public TomcatServer() {
          38         initConf();
          39 
          40         tomcat = new Embedded();
          41         tomcat.setCatalinaHome(catalinaHome);
          42         Engine engine = tomcat.createEngine();
          43         Host host = tomcat.createHost("localhost", projectHome);
          44         host.addChild(tomcat.createContext(""""));
          45         Context context = tomcat.createContext("/webapp1""webapp");
          46         // 當以debug模式啟動時,修改可立即生效
          47         context.setReloadable(true);
          48         host.addChild(context);
          49         engine.addChild(host);
          50         engine.setDefaultHost("localhost");
          51         tomcat.addEngine(engine);
          52         tomcat.addConnector(tomcat.createConnector("0"8081false));
          53         registerShutdownHook();
          54         try {
          55             tomcat.start();
                          
          Thread.sleep(Long.MAX_VALUE);
          56         } catch (Exception e) {
          57             throw new RuntimeException(e);
          58         }
          59     }
          60 
          61     private void initConf() {
          62         Properties properties = new Properties();
          63         try {
          64             properties.load(TomcatServer.class
          65                     .getResourceAsStream("/tomcat-conf.properties"));
          66             catalinaHome = properties.getProperty("catalina.home");
          67 
          68             File f = new File(".");
          69             projectHome = f.getAbsolutePath();
          70         } catch (IOException e) {
          71             throw new RuntimeException(e);
          72         }
          73     }
          74 
          75     private void registerShutdownHook() {
          76         Runtime.getRuntime().addShutdownHook(new Thread() {
          77             @Override
          78             public void run() {
          79                 try {
          80                     tomcat.stop();
          81                 } catch (LifecycleException e) {
          82                     throw new RuntimeException(e);
          83                 }
          84             }
          85         });
          86     }
          87 }


          tomcat-conf.properties:
          catalina.home=/home/jarod/server/tomcat/apache-tomcat-6.0.14


          為什么要setCatalinaHome?
          設了該值,tomcat啟動時會在該目錄加載默認的一些配置,如MIME mapping等,如果要自己手動添加配置太麻煩了,而如果不要這些配置,這個embedded tomcat用處也不大
          posted on 2007-12-20 14:49 Jarod 閱讀(2181) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 巢湖市| 布尔津县| 靖江市| 横山县| 兴安县| 德江县| 苏尼特左旗| 安平县| 大悟县| 老河口市| 沧源| 灵川县| 惠安县| 乾安县| 海城市| 揭东县| 萍乡市| 东宁县| 同心县| 如皋市| 德昌县| 松桃| 都匀市| 康保县| 浦城县| 荃湾区| 嵊州市| 台东市| 长白| 历史| 清苑县| 诏安县| 敦化市| 百色市| 阳东县| 繁昌县| 木里| 双峰县| 新化县| 上虞市| 镇坪县|