`
mywhy
  • 浏览: 66945 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Tomcat检测程序

 
阅读更多
import java.net.*;
import java.io.*;

public class Tomcat   extends Thread {
int listenPort=80; //要检测的端口号
String url = "";
String str="";
public void setstr(){
        str="GET / HTTP/1.0\r\n";
str+="\r\n";
str+="Accept: image/gif, image/x-xbitmap, image/jpeg, image peg, application nd.ms-powerpoint, application nd.ms-excel, application/msword, application/x-shockwave-flash, */* \r\n";
str+="Accept-Language: zh-cn \r\n";
str+="Accept-Encoding: gzip, deflate\r\n";
str+="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) \r\n";
str+="Connection: Keep-Alive \r\n";
}

  public void setListenPort(int listenPort) {
    this.listenPort = listenPort;
  }

  public int getListenPort() {
    return listenPort;
  }

  public Tomcat(String url) {
    this.url = url;
  }

  //判断是否停止监听
  boolean isStopListen = false;

  //执行一个线程,线成不断的判断tomat是否停止,如果停止,则关闭tomcat
  //然后isTomcatStop=true,sleep(60000)
  public void run() {
    while (!isStopListen) {
      if (!this.isConnectionTomcat()) {
        try {
          this.closeTomcat();
          this.sleep(10000);
          this.closeTomcat();
          this.sleep(10000);
      this.closeTomcat();
          this.sleep(10000);
          new RunTomcat();
          this.sleep(30000);
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }
      else {
        try {
          this.sleep(30000);
        }
        catch (InterruptedException ex1) {
          ex1.printStackTrace();
        }
      }
    }
  }

//关闭tomcat
  public void closeTomcat() throws Exception {
    Process process = Runtime.getRuntime().exec("shutdown.bat");
    BufferedReader bufferedReader = new BufferedReader(new
        InputStreamReader(process.getInputStream()));

  }

  //判断是否连接到80断口
  public boolean isConnectionTomcat() {
    Socket so = null;
setstr();
    try {
      so = new Socket("localhost", listenPort);
  so.setSoTimeout(5000);
  OutputStream out=so.getOutputStream();
  out.write(str.getBytes());
  out.flush();
  InputStream in=so.getInputStream();
      byte[] receiveByte=new byte[1000];
  int num=in.read(receiveByte);
  //System.out.println(new String(receiveByte,0,num));
  if (num<=5)throw new Exception("读取失败");
  so.close();
    }
    catch (Exception ex) {
      System.out.println("工作可能有异常"+listenPort+ex);
  try{
  this.sleep(1000);
  so = new Socket("localhost", listenPort);
  so.setSoTimeout(5000);
  OutputStream out=so.getOutputStream();
  out.write(str.getBytes());
  out.flush();
  InputStream in=so.getInputStream();
  byte[] receiveByte=new byte[1000];
  int num=in.read(receiveByte);
  if (num<=5)throw new Exception("读取失败");
  //System.out.println(new String(receiveByte,0,num));
  so.close();
  }catch(Exception e){
  System.out.println("工作出现异常!!!!!!!");
  return false;
  }
    }
    finally {
      try {
        if (so != null) {
          so.close();
        }
      }
      catch (IOException ex1) {
        ex1.printStackTrace();
      }
    }
    System.out.println("正常启动");
    return true;
  }

  //打开tomcat
  public class RunTomcat
      extends Thread {
    public RunTomcat() {
      this.start();
    }

    public void run() {
      try {
        Process process = Runtime.getRuntime().exec("startup.bat");
        BufferedReader bufferedReader = new BufferedReader(new
            InputStreamReader(process.getInputStream()));
      }
      catch (IOException ex) {
        ex.printStackTrace();
      }

    }
  }

//主线程不断循环,发现isTomcatStop=true,启动tomcat
  public static void main(String args[]) {
    if(args.length==0){
     System.out.println("命令行为:java Tomcat port -请指定监听端口" );
     return;
    }
    Tomcat s = new Tomcat("");
    try {
      s.setListenPort(Integer.parseInt(args[0]));
    }
    catch (NumberFormatException ex) {
      System.out.println("输入的第一个参数必须为端口号,端口号为tomcat服务端口号(https为:443,http为:80)。必须好必须唯一个小于65535的正整数");
    }
    s.start();
  }
}
分享到:
评论

相关推荐

    java tomcat 监控程序

    2. **异常检测**:当Tomcat服务出现异常时,监控程序需要能够识别这些异常。这可能包括检查服务器的日志文件,分析特定错误代码或异常堆栈信息,或者通过自定义健康检查接口来判断服务是否出现问题。 3. **自动重启...

    TomcatServerMonitor,tomcat监控程序

    在企业环境中,由于代码的复杂性和不可预知性,服务器崩溃或无响应是常见现象,而这个监控程序的自动重启功能,可以在检测到异常情况后迅速恢复服务,减少业务中断时间,从而提高系统的可用性。 【标签】"tomcat...

    tomcat守护程序

    程序通过访问http://localhost和输入的Tomcat端口来访问Tomcat主页,如果获取到返回串证明Tomcat运行中,否则检测JAVA.EXE进程是否存在。 Tomcat启动后系统进程列表中出现的进程名为JAVA.EXE而不是Tomcat之类的名称...

    tomcat监护程序

    当Tomcat由于各种原因意外停止时,监护程序会检测到这一情况并自动执行重启操作,从而避免了服务中断可能带来的损失。 守护程序(或监护程序)在计算机系统中扮演着重要角色,它们通常作为后台服务运行,监控其他...

    检测Tomcat运行状态-自动重启

    - **类结构**:程序主要由`CheckTomcat`类构成,其中包含了`checkTomcatIsAlive`方法用于检测Tomcat状态,以及`main`方法作为程序入口。 - **代码示例**: - **初始化配置**:在`main`方法中初始化`monitorurl`和`...

    tomcat部署webservice程序

    5. **部署WAR文件**:将WAR文件复制到Tomcat的webapps目录下,Tomcat会自动检测并解压该文件。 6. **启动Tomcat**:启动Tomcat服务器,Web Service应该现在可以在指定的URL下访问了。 7. **测试Web Service**:...

    linux64_tomcat7

    Linux 64位环境下的Tomcat 7是Java应用程序服务器,专用于运行Web应用程序,包括动态网站和Web服务。Tomcat 7是Apache软件基金会Jakarta项目的一部分,它基于Servlet和JSP规范,提供了一个轻量级、高性能的平台来...

    tomcat多程序配置方法

    Tomcat会自动检测并启动这些应用。 标题中的"多程序配置方法"主要涉及到的是Tomcat的虚拟主机(Virtual Host)配置。虚拟主机允许你在同一个IP地址和端口上运行多个独立的网站,通过识别不同的主机名来区分。在`...

    Windows下 tomcat的守护进程、心跳程序

    ### Windows 下 Tomcat 的守护进程与心跳检测程序详解 在 IT 领域,特别是 Java Web 开发中,Apache Tomcat 是一个非常重要的轻量级应用服务器,它主要用于部署 Java Web 应用程序。在实际生产环境中,为了保证服务...

    TOMCAT自动检测重启

    【标题】"TOMCAT自动检测重启"是一个关键的话题,特别是在服务器管理中,确保应用程序的稳定运行至关重要。TOMCAT,作为Apache软件基金会的开源Java Servlet容器,常常被用来部署Web应用。当TOMCAT服务意外停止时,...

    Tomcat 程序中远程部署

    同时,确保`autoDeploy`属性设为`true`,这样Tomcat会在该目录下检测新的WAR文件并自动部署。 ```xml ``` **2. 安全性考虑** 由于远程部署涉及网络传输,因此安全至关重要。默认情况下,Tomcat的管理接口(例如...

    tomcat集群配置 程序以及文档

    本资料包包含了“tomcat集群配置”的程序及文档,提供了现成的例子,帮助我们理解和实践Tomcat集群的搭建与管理。 首先,我们需要了解Tomcat集群的基本概念。集群是指多个Tomcat实例协同工作,它们共享相同的会话...

    自动监控 Windows平台Tomcat运行监控并自动重启

    在IT运维领域,确保应用程序的稳定运行至关重要,尤其是在企业级应用服务器如Apache Tomcat上运行的服务。本话题聚焦于在Windows平台上对Tomcat的运行状况进行自动监控,并在出现异常时进行自动重启,以保障服务的...

    tomcat 性能检测软件

    Tomcat是一款流行的开源Java Servlet容器,广泛用于部署Java Web应用程序。由于其在许多企业环境中扮演着核心角色,因此对它的性能进行实时监测至关重要。 描述中的“probe----tomcat 性能检测软件 内含使用的相关...

    tomcat-6.0.16.rar完整安装程序

    5. **部署应用**:应用程序通常以WAR(Web ARchive)格式部署到Tomcat的`webapps`目录下,Tomcat会自动检测并解压WAR文件,或者用户也可以通过管理界面进行部署。 6. **性能优化**:Tomcat的性能可以通过调整线程池...

    apache Tomcat web服务器

    Tomcat会自动检测新文件并进行部署。如果希望在特定的Context Path下运行应用,可以创建一个`META-INF/context.xml`文件来指定。 **4. 启动与停止Tomcat** 在Tomcat的bin目录下,有对应的启动脚本(如`startup.bat...

    apache-tomcat-7.0.52 解压免安装版tomcat7

    - **webapps**:这是部署Web应用程序的地方,只需将WAR文件或解压的目录放入此目录,Tomcat会自动检测并启动应用。 - **work**:存储编译后的JSP文件和应用运行时生成的临时文件。 使用Apache Tomcat 7.0.52解压版...

    tomcat内存泄漏备份方法

    内存泄漏是指程序在申请内存后,无法释放已不再使用的内存空间。在Tomcat中,如果长时间运行的应用不断积累不再使用的对象,就会导致内存占用持续增长,进而引发内存泄漏。 2. **Tomcat内存管理** Tomcat使用Java...

    Linux下 tomcat的守护进程、心跳程序

    Linux下 tomcat的守护进程、心跳程序 自行重启TOmcat服务

    tomcat-8.5.73-windows 免安装版本

    6. **webapps**:默认的应用部署目录,将Web应用程序的WAR文件或已展开的目录放在这里,Tomcat会自动检测并部署它们。 7. **work**:存放JSP编译后的类文件和Servlet生成的临时文件。 在使用这个免安装版本的Tomcat...

Global site tag (gtag.js) - Google Analytics