CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  应用服务器

倾囊求助:tomcat的监控程序!在线等!

楼主zlpcg()2004-11-03 19:54:59 在 Java / 应用服务器 提问

如何写tomcat的监控程序,一旦它有异常自动关闭后,能监控到并再次启动,希望高手帮忙! 问题点数:0、回复次数:8Top

1 楼zhwquan(飞雪)回复于 2004-11-03 20:28:50 得分 0

你写个java程序,过一段时间(比如一秒)就去取本机上的网页,如果取不到就重起Top

2 楼cdcx(西南偏南)回复于 2004-11-03 22:41:14 得分 0

写个socket程序,定时去连接tomcat的监听端口,如果失败就重新启动tomcatTop

3 楼zhwquan(飞雪)回复于 2004-11-03 23:24:25 得分 0

package   com.bes.tomcat   ;  
   
  import   java.util.Timer   ;  
  import   java.util.TimerTask   ;  
  import   java.net.Socket   ;  
  import   java.net.*   ;  
  import   java.io.*   ;  
   
  public   class   Listener  
          extends   TimerTask  
  {  
          private   int   count   =   0   ;  
          private   int   defaultPort   =   8080   ;  
          public   void   run   ()  
          {  
                  count   ++   ;  
                  log("run   times:"   +   count);  
                  if   (   isTomcatRunning   ()   )  
                  {  
                          log   (   "Running"   )   ;  
                  }  
                  else  
                  {  
                          log   (   "Not   Running"   )   ;  
                          startup();  
                  }  
          }  
   
          public   void   startup()  
          {  
                  Runtime   runtime   =   Runtime.getRuntime()   ;  
                  Process   testProcess   =   null   ;  
                  try  
                  {  
                          testProcess   =   runtime.exec   (   "startup.bat"   )   ;  
                          try  
                          {  
                                  testProcess.waitFor   ()   ;  
                          }  
                          catch   (   InterruptedException   ex1   )  
                          {  
                                  ex1.printStackTrace();  
                          }  
                          InputStream   in   =   testProcess.getInputStream()   ;  
                          byte[]   bytes   =   new   byte[in.available()];  
                          in.read(bytes)   ;  
                          log("   [   OUTPUT   ]   "+new   String(bytes));  
                  }  
                  catch   (   IOException   ex   )  
                  {  
                          ex.printStackTrace();  
                  }  
          }  
          public   boolean   isTomcatRunning   ()  
          {  
                  return   isTomcatRunning   (   defaultPort   )   ;  
          }  
   
          public   boolean   isTomcatRunning   (   int   port   )  
          {  
                  boolean   returnBoolean   =   false   ;  
                  Socket   socket   =   null   ;  
                  try  
                  {  
                          socket   =   new   Socket   (   "localhost"   ,   port   )   ;  
                          returnBoolean   =   true   ;  
                  }  
                  catch   (   UnknownHostException   ex   )  
                  {  
                          log   (   ex.getMessage   ()   )   ;  
                          returnBoolean   =   false   ;  
                  }  
                  catch   (   IOException   ex   )  
                  {  
                          log   (   ex.getMessage   ()   )   ;  
                          returnBoolean   =   false   ;  
                  }  
                  finally  
                  {  
                          if(socket   !=   null)  
                          {  
                                  try  
                                  {  
                                          socket.close   ()   ;  
                                  }  
                                  catch   (   IOException   ex1   )  
                                  {  
                                          log(ex1.getMessage());  
                                  }  
                          }  
                  }  
                  return   returnBoolean   ;  
   
          }  
   
          private   void   log   (   String   message   )  
          {  
                  System.out.println   (   "[   TomcatListener   ]   :"   +   message   )   ;  
          }  
   
          public   static   void   main   (   String[]   args   )  
          {  
                  Timer   timer   =   new   Timer   (   false   )   ;  
          //                 timer.schedule(new   Listener(),new   Date());  
                  timer.schedule(new   Listener(),0,1000   *   5);  
          }  
  }Top

4 楼javaoaout(javaoaout)回复于 2004-11-04 09:00:29 得分 0

你写的程序可能不是很准确,在unix下面按照你的程序去处理,就会出现多个tomcat进程同时运行的情况Top

5 楼javaoaout(javaoaout)回复于 2004-11-04 09:01:21 得分 0

应该是先看进程在不在,在就杀进程,然后启动应用,不在就直接启动进程Top

6 楼zhwquan(飞雪)回复于 2004-11-04 09:09:57 得分 0

怎么不准确,tomcat不能有两个或两个以上的进程,因为会端口冲突的  
   
  我测试过了在windows下没问题,在linux下作简单修改就可以了Top

7 楼baffling(迷茫困惑中)回复于 2005-03-03 11:31:21 得分 0

gzTop

8 楼hojay2001(小捷利)回复于 2005-03-03 15:54:20 得分 0

UPTop

相关问题

  • 用vb 做监控程序
  • 求USB监控程序
  • 求USB监控程序
  • 怎么写监控程序
  • 监控程序的写法?
  • java语言实现监控程序
  • 请问谁有屏幕监控程序?
  • 急求--自动监控程序
  • 网站监控程序该如何写?
  • 如何实现后台监控程序

关键词

  • .net
  • runtime
  • tomcat
  • testprocess
  • startup
  • running
  • count
  • import java
  • log

得分解答快速导航

  • 帖主:zlpcg

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo