Jarod@termainal$ tail * >> blog

          A Developer's Notebook

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            24 Posts :: 9 Stories :: 12 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(4)

          我參與的團隊

          搜索

          •  

          最新評論

          測試環境:
          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 閱讀(2185) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 慈利县| 临澧县| 溧阳市| 济宁市| 慈利县| 铁岭市| 平遥县| 浮山县| 平乡县| 米易县| 秦安县| 和平县| 会昌县| 天镇县| 华宁县| 施秉县| 昌黎县| 湟中县| 武山县| 陇川县| 荆州市| 缙云县| 五常市| 兴国县| 老河口市| 无锡市| 水城县| 延津县| 樟树市| 邵武市| 黄大仙区| 镇远县| 靖州| 阳谷县| 贺兰县| 南漳县| 西昌市| 磴口县| 调兵山市| 古丈县| 清新县|