HelloWorld 善戰(zhàn)者,求之于勢(shì),不責(zé)于人;故能擇人而任勢(shì)。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁(yè) ::  :: 聯(lián)系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評(píng)論 :: 0 Trackbacks
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          留言簿(5)

          隨筆分類(156)

          隨筆檔案(159)

          文章分類(1)

          相冊(cè)

          收藏夾(1)

          聯(lián)接技術(shù)類文章

          最新隨筆

          搜索

          最新評(píng)論

          編寫(xiě) Tomcat 管理程序
          評(píng)分:
          作者:jilili   瀏覽次數(shù):439   創(chuàng)建于: 2006-01-03   更新于: 2006-11-19
          關(guān)鍵字:

          1.前言
             
              基于Tomcat的應(yīng)用程序在發(fā)布時(shí)總是存在啟動(dòng)服務(wù)和重新加載的問(wèn)題,有時(shí)甚至需要重新啟動(dòng)Tomcat服務(wù),經(jīng)過(guò)一段時(shí)間的使用對(duì)Tomcat有了些了解,這篇文章的目的是介紹有關(guān)怎樣通過(guò)程序去控制Tomcat,主要內(nèi)容如下:
             
              添加刪除虛擬主機(jī)添加刪除Host別名啟動(dòng)停止Host、啟動(dòng)停止Context發(fā)布卸載程序

          2. 準(zhǔn)備知識(shí)和參考資料

          2.1 類加載器和Tomcat安全管理(可以在讀完整篇文章后作為補(bǔ)充材料閱讀
             
                 類裝入問(wèn)題解密(http://www-128.ibm.com/developerworks/cn/java/j-dclp1/)
                 了解 Java ClassLoader(http://www- 128.ibm.com/developerworks/cn/views/java/tutorials.jsp?cv_doc_id=84959)這篇文章需要注冊(cè)才能看到
                 Java 編程的動(dòng)態(tài)性,第 1 部分: 類和類裝入(http://www-128.ibm.com/developerworks/cn/java/j-dyn0429/)
                 The Tomcat 5.5 Servlet/JSP Container Class LoaderHOW-TO(http://tomcat.apache.org/tomcat-5.5-doc/class-loader- howto.html)
                 The Tomcat 5.5 Servlet/JSP Container Security Manager HOW-TO(http://tomcat.apache.org/tomcat-5.5-doc/security-manager- howto.html)

          2.2 ContainerServlet

              org.apache.catalina.ContainerServlet 是一個(gè)接口類,它可以訪問(wèn)Catalina的內(nèi)部功能,它有Catalina被類加載器加載,而不是我們的WebApplication類加載器。它的Setter方法在這個(gè)Servlet的新的實(shí)例被放進(jìn)Service時(shí)被執(zhí)行。
              我們使用它獲取 Engine, Host,  Context等內(nèi)部對(duì)象。要使用這個(gè)類必需在Context配置中使 privileged="true"如下:
             
              <Context docBase="/opt/vhost/ideais.net/tomcat.war" path="/tomcat" privileged="true"/>

          2.3 JMX

              Tomcat5.X中提供了JMX對(duì)象,它對(duì)于Tomcat的管理提供了完整的管理,可是對(duì)于服務(wù)的控制只有通過(guò)借用ContainerServlet來(lái)實(shí)現(xiàn)。

          3. Tomcat 層次結(jié)構(gòu)




          4. 獲取Tomcat內(nèi)部對(duì)象

          ...
          import org.apache.catalina.*;
          ...

          public class XmlAdminServlet extends HttpServlet implements ContainerServlet

            ...
            protected Wrapper wrapper = null;
            protected Context context = null;
            protected Host host = null;
            ...
           
            public void setWrapper(Wrapper wrapper) {
                  this.wrapper = wrapper;
                  if (wrapper == null) {
                      context = null;
                      host = null;
                      engine = null;
                  } else {
                      context = (Context) wrapper.getParent();
                      host = (Host) context.getParent();
                      engine = (Engine) host.getParent();
                  }
            }
           
            ...
              Container[] hosts = engine.findChildren();
            ...
           
          }



          </script>

          posted on 2007-12-06 14:01 helloworld2008 閱讀(763) 評(píng)論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 新竹县| 黔西| 吕梁市| 新化县| 廊坊市| 大兴区| 新巴尔虎右旗| 益阳市| 林芝县| 东辽县| 嘉黎县| 泸水县| 南宁市| 富宁县| 建始县| 巴青县| 梅州市| 民权县| 柳河县| 黔东| 布拖县| 遂平县| 冷水江市| 安达市| 稷山县| 永善县| 嘉鱼县| 武乡县| 呼图壁县| 镇平县| 丰镇市| 光山县| 米林县| 巴林右旗| 兴国县| 报价| 松阳县| 玉山县| 岐山县| 吴川市| 凭祥市|