Tomcat服务器重启小工具—swing
来源:互联网 发布:淘宝店铺装修轮播 编辑:程序博客网 时间:2024/05/16 23:53
第一次写博文,跟大家一起学习分享,有诸多不足,望多多指教,大神轻轻指点。。。好了,回到正文。。。
最近在做一个web项目,老大提到一个问题,说Tomcat服务器如果挂掉了,我们应该能有一个程序来唤醒Tomcat服务器,而不是工作人员手动去操作(好吧,这确实是个问题)。O了,这就是基本需求。。。,对于新来的,应聘java开发却弄了两个礼拜Linux的我鸭梨山大啊!!!好吧,好好表现。。。
首先是对核心功能的考虑,没有头绪的我首先想到度娘,事实证明度娘是很强大的,不多久就发现网上其实已经有关于这方面的代码,具体的实现思路为:用一个线程不断对web页面进行访问,然后判断,如果返回有值则说明Tomcat正常运行,无需其他操作;如果没有返回值,则继续判断进程中是否有tomcat7.exe这个进程,如果找到则说明服务器已经卡死,先关闭再开启Tomcat;如果进程中不存在则说明服务器还未启动,直接启动Tomcat。注:这里需将tomcat注册成服务,方便接下来对服务直接操作。核心思想就是这样了。。。
本着对于swing的特殊感情,并且希望大家都能方便使用的想法,用的是界面化的操作模式。界面实现用的是swing(虽然我知道这东西已经很难看到了,下面有工具界面)
下面看核心代码:
1.先对需要访问的服务器web页面进行访问
try { URL url = new URL(newURL);//读取传入的URL URLConnection con = url.openConnection();//打开连接 in = new BufferedReader(new InputStreamReader(con.getInputStream()));//文件流读取 con.setConnectTimeout(overTime); //设置连接超时 con.setReadTimeout(4*overTime);//设置读取超时 while ((s = in.readLine()) != null) { if (s.length() > 0) { return ;//如能返回值则正常,返回 } } in.close();//关闭流 } catch (Exception e) { // e.printStackTrace(); }
2.如若服务器没反应,到进程中查找,如果存在则关闭后启动,如果不存在则直接打开
try { Process p = Runtime.getRuntime().exec("tasklist"); in = new BufferedReader(new InputStreamReader(p.getInputStream())); while ((s = in.readLine()) != null) { if (s.startsWith(t)) { isTomcatAlive = true; break; } } in.close(); } catch (Exception e) { e.printStackTrace(); } if (isTomcatAlive) { tomcatInfo = tomcatInfo + nowDate + ":Tomcat is alive but not response!" + "\r\n"; logger.addlog(":Tomcat is alive but not response!" + "\r\n"); showLine = showLine + 1; stopTomcat();//停止tomcat try {Thread.sleep(1000); } catch (InterruptedException e) {e.printStackTrace(); } } else { tomcatInfo = tomcatInfo + nowDate + ":Tomcat is not alive,Begin to start!" + "\r\n"; logger.addlog(":Tomcat is not alive,Begin to start!" + "\r\n"); showLine = showLine + 1; startTomcat(); } }3.执行开启关闭Tomcat函数
/** * 停止Tomcat服务器 */ public void stopTomcat() { try { Process p = Runtime.getRuntime().exec("net stop tomcat7"); BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream())); String s; String t = "成功停止"; boolean restart = false; while ((s = in.readLine()) != null) { if (s.indexOf(t) != -1) <span style="white-space:pre"></span>//判断返回值是否有 { restart = true; break; } } tomcatInfo = tomcatInfo + nowDate + ":Tomcat is stop " + (restart ? "OK" : "ERROR") + "\r\n"; logger.addlog(":Tomcat is stop " + (restart ? "OK" : "ERROR") + "\r\n"); } catch (Exception e) { e.printStackTrace(); } } /** * 启动Tomcat */ public void startTomcat() { try { Process p = Runtime.getRuntime().exec("net stop tomcat7"); } catch (Exception e) { e.printStackTrace(); } try { Process p = Runtime.getRuntime().exec("net start tomcat7"); if(firstStart != 0) { secondStart = System.currentTimeMillis(); } firstStart = System.currentTimeMillis(); BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream())); String s; String t = "启动成功"; boolean restart = false; while ((s = in.readLine()) != null) { if (s.indexOf(t) != -1) { restart = true; break; } } tomcatInfo = tomcatInfo + nowDate + ":Tomcat is start " + (restart ? "OK" : "ERROR") + "\r\n"; logger.addlog(":Tomcat is start " + (restart ? "OK" : "ERROR") + "\r\n"); } catch (Exception e) { e.printStackTrace(); } }4.将该类放入线程
public void run() {while(true){try {Thread.sleep(startTime);<span style="white-space:pre"></span>//设置线程休眠时间
tListener.keepTomcatAlive(serverFileRoute.getText(), overTime);showArea.setText(tListener.tomcatInfo);restartTotalText.setText(String.valueOf(tListener.restartTime));//展示信息if(tListener.showLine >= 30){showArea.setText("");tListener.tomcatInfo = "";tListener.showLine = 0;}} catch (InterruptedException e) {e.printStackTrace();}}}
上面说了核心功能,下面简单说下这个小工具后半段界面以及部分功能。其他功能主要有:1.日志写入2.配置文件操作3.托盘化。swing界面最后结果就如下图:
其他功能代码由于比较多,就暂时不贴出来了。
最后,基本功能已经全部实现,但是因为是本机测试,也没用过什么压力测试软件,不知道访问量过大会不会导致工具的其他问题,本来还想做个开机启动的,但是注册表已经写入,不知道为什么还是不会开机自启。。。接下来就没有继续研究了,有兴趣的大神要是知道,求告知。。。有兴趣的可以留言交流。
- Tomcat服务器重启小工具—swing
- tomcat服务器重启脚本
- 重启服务小工具
- 服务器重启服务
- 服务器重启服务
- tomcat服务器重启后session可以继续使用
- tomcat服务器重启后session可以继续使用
- tomcat服务器和jboss服务器重启命令
- TOMCAT服务器重启造成图片资源自动删除
- TOMCAT服务器重启造成图片资源自动删除
- Java Swing实用小工具开发
- mysql服务器重启
- nginx 服务器重启命令
- 强制关闭tomcat.运维小工具
- Java-Swing写的一个定时关机的小工具
- Java Swing编写小工具图形化界面
- 服务器重启后启动oracle服务
- linux服务器重启服务命令步骤
- boost::scoped_ptr
- Titanium 画日历
- delphi实现dbgrideh点击列自动排序
- MATLAB bwlabel函数 统计连通区域
- 工作笔记(1)--Android平板禁用虚拟按键
- Tomcat服务器重启小工具—swing
- poj 2553 The Bottom of a Graph 【强连通图中出度为0点】
- Ubuntu中用VirtualBox虚拟机安装Windows XP完整图解
- 在不停止Nginx服务的情况下平滑变更Nginx配置
- 如何使用 Endnote 和 LaTeX/BibTeX 建立论文的参考文献(bib)文件
- 哲学是否有意义?哲学家对社会的贡献在哪里?
- 运用HTML5+CSS3做的登录页面
- 程序猿之--我的书籍阅读目标
- 配置spring4+spring mvc+hibernate4+hadoop1.2