<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    記錄、分享

    檢測Tomcat運行狀態,自動重啟

    檢測Tomcat運行狀態,自動重啟

    http://blog.csdn.net/huangjl2000w/article/details/6338997

    先是主程序:


    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.Date;

    public class CheckTomcat {
     private static String tomcatroot="";
     private static String monitorurl="";
     private static void checkTomcatIsAlive(String myurl) throws NullPointerException {
      String s;
      boolean isTomcatAlive = false;
      java.io.BufferedReader in;
      try {
       System.out.println(">>>>>>檢測URL:"+myurl);
       URL url = new URL(myurl);
       URLConnection con = url.openConnection();
       in = new java.io.BufferedReader(new java.io.InputStreamReader(con.getInputStream()));
       con.setConnectTimeout(1000);
       con.setReadTimeout(4000);
       while ((s = in.readLine()) != null) {
        if (s.length() > 0) {// 如果能夠讀取到頁面則證明可用,tomcat正常,否則繼續后面的重啟tomcat操作。
         return;
         }
        }
       in.close();
      }catch (Exception ex) {
       //ex.printStackTrace();
       System.out.println("*************該URL有誤或不可訪問!");
      }
      
      /*if (isTomcatAlive) {
       System.out.println("<" + new Date()+ "> Tomcat is alive but not response!");
       stopTomcat();
      }*/
      RunTomcat runt=new RunTomcat();
      runt.startTomcat(tomcatroot);
     }
     
     /*public static void stopTomcat() {
      try {
       //java.lang.Process p = java.lang.Runtime.getRuntime().exec("net stop /"Apache Tomcat/"");
       java.lang.Process p = java.lang.Runtime.getRuntime().exec(tomcatroot+"bin//shutdown.bat");
       java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
       String s;
       String t = "Using JRE_HOME";
       boolean restart = false;
       while ((s = in.readLine()) != null) {
        if (s.indexOf(t) != -1) {
         restart = true;
         break;
        }
       }
       System.out.println("<" + new Date() + "> Tomcat is stop "+ (restart ? "OK" : "ERROR"));
      } catch (Exception e) {
       e.printStackTrace();
      }
     }*/
     
     public static void main(String[] args) {
      System.out.println("********************************************************");
      System.out.println("====本程序自動檢測Tomcat運行狀況,必要時自動重啟Tomcat。====");
      System.out.println("********************************************************");
      
      init_config();
      if(monitorurl.equals(""))monitorurl="http://localhost:8080/ExchangeWeb/checkTomcat/monitor.jsp";
      if(tomcatroot.equals(""))tomcatroot="F://tomcat-6.0.20//";
      if(!tomcatroot.endsWith("//"))tomcatroot+="http://";
      while (true) {
       try {
        String random="?random="+Math.random() * 65535;//=====處理數據緩存問題======
        CheckTomcat.checkTomcatIsAlive(monitorurl+random);
        Thread.sleep(5000);
        System.out.println("========================checking at <"+new Date()+">");
       } catch (Exception ex) {
        ex.printStackTrace();
       }
      }
     }
     
     static private void init_config() {
      try{
       CheckTomcat me=new CheckTomcat();
       String maindir=me.getClass().getResource("/").toURI().getPath();
       System.out.println(">>>>>>配置文件目錄:"+maindir);
       String sLine;
       String filename=maindir+"config.xml";
       BufferedReader buffReader = new BufferedReader(new FileReader(filename));
       while((sLine = buffReader.readLine())!=null)
       { 
        sLine = sLine.trim();
        if(sLine.trim()!="" && !sLine.equals("")){
         if(sLine.toLowerCase().startsWith("tomcatroot")){
          int npos=sLine.indexOf("tomcatroot");
          npos+="tomcatroot".length();
          tomcatroot=sLine.substring(npos).trim();
          if(tomcatroot.startsWith("="))tomcatroot=tomcatroot.substring(1);
         }
         else if(sLine.toLowerCase().startsWith("monitorurl")){
          int npos=sLine.indexOf("monitorurl");
          npos+="monitorurl".length();
          monitorurl=sLine.substring(npos).trim();
          if(monitorurl.startsWith("="))monitorurl=monitorurl.substring(1);
         }
        }
       }
       buffReader=null;
      }catch(Exception e){
       e.printStackTrace();
       System.out.println("********************************************************");
       System.out.println("====讀取配置文件失敗!系統無法運行,請與供應商聯系。====");
       System.out.println("********************************************************");
       System.exit(0);
      }
     }
    }

     

    再是自動重啟Tomcat線程類:

    import java.util.Date;


    public class RunTomcat extends Thread {

     private static String tomcatroot="";
     
     public void startTomcat(String root) {
      this.tomcatroot=root;
      
      System.out.println(">>>>>>Tomcat即將啟動。。。");
      System.out.println(">>>>>>Tomcat根目錄:"+tomcatroot);
      try {
       //java.lang.Process p = java.lang.Runtime.getRuntime().exec("net stop /"Apache Tomcat/"");
       java.lang.Process p = java.lang.Runtime.getRuntime().exec(tomcatroot+"bin//shutdown.bat");
      } catch (Exception e) {
        e.printStackTrace();
      }
      
      try {
       Thread.sleep(3000);//等待shutdown結束
       //RunTomcat me=new RunTomcat();
       //String maindir=me.getClass().getResource("/").toURI().getPath();
       //java.lang.Process p = java.lang.Runtime.getRuntime().exec(maindir+"checkTomcat.bat");
       java.lang.Process p = java.lang.Runtime.getRuntime().exec(tomcatroot+"bin//startup.bat");
       java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
       
       /*String s;
       boolean restart = false;
       String t = "Server startup in";
       while ((s = in.readLine()) != null) {
        System.out.println(s);
        if (s.indexOf(t) != -1) {
         restart = true;
         break;
        }
       }*/
       System.out.println(">>>>>>Tomcat start at <" + new Date() + ">");
      } catch (Exception e) {
       e.printStackTrace();
      }
     }

    }

    接著是檢測tomcat是否活動monitor.jsp文件:

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    out.println("path=" + path + "<br>");
    out.println("basePath=" + basePath + "<br>");
    out.println("ok<br>");
    %>

     

    然后是config.xml配置文件:

    tomcatroot=F:/tomcat-6.0.20/
    monitorurl=http://localhost:8080/ExchangeWeb/checkTomcat/monitor.jsp

     

    最后是checkTomcat.bat批處理文件:

    @echo off

    rem=========第一步:配置下面的JAVA_HOME為JDK目錄==========#
    @set JAVA_HOME=C:/Program Files/Java/jdk1.6.0_14

    rem=========第二步:配置下面的CATALINA_HOME為Tomcat目錄==========#
    @set CATALINA_HOME=F:/tomcat-6.0.20

    @set PATH=%JAVA_HOME%/bin/;
    @set CLASSPATH=%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/lib/servlet-api.jar;%CATALINA_HOME%/lib/jsp-api.jar;


    java CheckTomcat

     

    測試時,只要雙擊執行checkTomcat.bat文件即可。

    posted on 2012-05-24 10:44 張生 閱讀(8868) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2012年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV无码片一区二区三区| 亚洲视频在线不卡| 美美女高清毛片视频黄的一免费 | 免费无码又爽又黄又刺激网站| 国语成本人片免费av无码| 亚洲一级特黄特黄的大片| AV免费网址在线观看| 亚洲欧美国产欧美色欲| 在线免费一区二区| 青青青亚洲精品国产| 亚洲AV伊人久久青青草原| 一级一级毛片免费播放| 亚洲精品无码av人在线观看| 久久精品视频免费| 亚洲美女精品视频| 四虎www免费人成| 无码人妻一区二区三区免费视频| 亚洲美女在线国产| 亚洲免费人成在线视频观看| 亚洲黄色免费在线观看| 毛片在线免费视频| 亚洲精品视频免费观看| 亚洲国产二区三区久久| 免费高清在线爱做视频| 成年女人A毛片免费视频| 亚洲视频一区在线| 蜜桃精品免费久久久久影院| 国产精品美女久久久免费| 亚洲精品私拍国产福利在线| 啦啦啦高清视频在线观看免费| 老妇激情毛片免费| 亚洲高清无在码在线无弹窗| 日韩中文无码有码免费视频| 国产一级a毛一级a看免费视频| 亚洲第一页在线播放| 又粗又硬又大又爽免费视频播放| 久久精品成人免费看| 亚洲欧洲av综合色无码| 国产亚洲色婷婷久久99精品 | 国产免费人视频在线观看免费| 成人免费无码H在线观看不卡|