后台有很多线程在运行,我要监控这些线程是否成功启动,运行。如果没有启动或是启动失败,我就要重启tomcat这些都基于web网页实现。。,java控制tomcat,除了public static Process run(File dir)throws IOException {
String cmd = "cmd /C start startup.bat";
String[] envp = null;
Runtime rt = Runtime.getRuntime();
return rt.exec(cmd, envp, dir);
}这种方式,还有没有其他的!还有就是我关闭了tomcat,怎么又跳转到jsp页面了。。百度谷歌很多了,还是没找到头绪啊。。
String cmd = "cmd /C start startup.bat";
String[] envp = null;
Runtime rt = Runtime.getRuntime();
return rt.exec(cmd, envp, dir);
}这种方式,还有没有其他的!还有就是我关闭了tomcat,怎么又跳转到jsp页面了。。百度谷歌很多了,还是没找到头绪啊。。
解决方案 »
- 请教个JQUERY.HTML()的小问题
- jsp inclue 问题
- JavaScript做的菜单总是被网页报有风险,每次都要允许才能看见,怎么办?
- EL 表达式问题
- servlet问题,我写了一个servlet在resin一切正常,但在tomcat5.0下不能运行,请教各位...
- 初学:那错了
- 为什么对数据库的遍历,不能查询到最后一行!
- 用jbuilder9生成的war文件为什么不自动解压呢?
- javamail发信的连接SMTP验证的问题,大哥大姐们帮我看看。
- springboot2中AbstractWebSocketMessageBrokerConfigurer过时
- jsp实现资源的上传与下载
- String.matches(String regex)的问题
你可以HttpURLConnection请求tomcat的默认首页,如果获得了默认页面说明服务器还在运行,如果页面获取错误你再写程序来启动tomcat.
String cmd = "cmd /C start startup.bat";
Thread[] threads = new Thread[Thread.activeCount()];Thread.enumerate(threads);for(Thread thread : threads){ System.out.println(thread.getName());
//线程名称
System.out.println(" "); System.out.println(thread.getState());
//线程状态
System.out.println("<br/>");}//已终止的线程不在列表中
那我还要监控另一个程序的线程,我用的java VM,这个只能获取当前程序的线程,获取不到另一个程序的线程。我能否把重启tomcat写在一个程序里面了??
最好的办法是被监控的线程能够向监视者汇报自己的工作情况,如果被线程的不可控(从你的角度不可以修改代码)
AND 如果 这些线程是一次启动且周期执行指定任务的话,则可以通过我上面说的那种方式检测当前线路列表中是否存在指定的线程。
如果要重启tomcat,也可以按照你所描述的方式,
如何跳转可以这样:当重新启动后,你转到一个指定的HTML页面,这在个页面通过AJAX周期重复访问的你服务器的特殊资源(这个资源可以是一个HTML、XML、或者JSON,返回的资源的可以包括任务信息,但不能为空,为了解决缓存的问题,可以在URL后面加一个动态的时间值参数),如果取得资源,证明tomcat启动好了,这时,可以跳转到预设的指定页面;否则你得到一个HTTP错误,然后重新访问此特殊资源,直到成功。
在你的$JAVA_HOME\bin下,jdk自带的,双击打开就知道了
你没认真看我15楼的方案么????,HTML+Javascript是可以不信赖后台的
支持这个,另外写一个Socket服务封装成jar,开机启动。
你15楼说的是‘当重新启动后’,而我现在就是要解决的是程序停止瘫痪了,我要的如何再来重新启动程序。在网上找到一个思路,http://hi.baidu.com/jqsosmmggxghpte/item/3ef8ea0a1e01d8113a53ee0c