该资源是关于如何检测Tomcat服务器的运行状态,并在检测到Tomcat未正常工作时实现自动重启的教程。通过Java编程来实现这个功能,主要涉及网络连接和异常处理。 在Java中,我们可以使用`URL`和`URLConnection`类来检查Tomcat服务器是否正在运行。在给出的代码段中,`checkTomcatIsAlive`方法用于检测Tomcat的状态。它接收一个URL字符串作为参数,这个URL通常是Tomcat服务器上的一个健康检查页面或者任何可以反映服务器状态的HTTP端点。 方法内部首先创建一个`URL`对象,并打开与该URL的连接。接着,通过`BufferedReader`读取连接的输入流,尝试获取响应内容。如果Tomcat正在运行且正常响应,那么应该能够读取到非空的响应数据。在示例代码中,检查的是响应内容长度是否大于0,这可能需要根据实际应用中的具体响应内容进行调整。 如果在指定的超时时间内(1秒连接超时,4秒读取超时)没有接收到任何数据,或者捕获到异常(例如`IOException`),则认为Tomcat未正常运行。此时,`isTomcatAlive`变量将保持为`false`,表示Tomcat服务可能已经挂起或停止。 在原始代码中,注释掉的部分原本会打印一条消息并调用`stopTomcat`方法来停止Tomcat。但在这里没有提供具体的`stopTomcat`实现,通常这个方法可能会包含关闭进程、发送信号或者执行特定的脚本来终止Tomcat服务。 一旦确定Tomcat未运行,代码会创建并启动一个名为`RunTomcat`的对象,调用其`startTomcat`方法来重新启动服务。`RunTomcat`类的具体实现没有在提供的代码片段中给出,但通常会包含启动Tomcat实例的相关逻辑,比如执行`catalina.sh start`命令或者调用操作系统级别的API来启动服务。 总结起来,这个教程讲解了如何使用Java编程来监控Tomcat服务器的状态,并在发现异常时自动重启服务。这对于保持应用程序的高可用性和稳定性是非常有用的。然而,实际部署时需要根据具体环境和需求完善`stopTomcat`以及`RunTomcat`类的方法,确保它们能正确地停止和启动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;
}
}
剩余7页未读,继续阅读
- 粉丝: 1
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展