发新话题
移动帖子 加入精华 加入置顶 加入收藏 关注此帖

远程关闭与重启tomcat的方法



远程关闭与重启tomcat的方法

jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>
<%
Runtime   run   =   Runtime.getRuntime();   
Process   pro   =   run.exec("d:\\tomcat\\bin\\restart.bat");   // 替换为你的路径,linux下为.sh , 如果单独调用 shutdown.bat 就关闭了。 单独启动没戏,因为tomcat已经停了
%>

restart.bat
call shutdown.bat
delay.exe 5
call startup.bat
唯一的问题,你需要一个延迟程序,就是那个 delay.exe 5, 否则可能还没有关闭就启动了,80端口被占用
如果是服务,就更简单了,restart.bat 里面写上 net stop Tomcat 和 net start Tomcat 就可以了!

JAVA世纪网
愿意为喜欢JAVA的朋友提供一点帮助
编辑 回复 快速回复 TOP

Re:远程关闭与重启tomcat的方法

紫竹老大,我感觉这个方案重启tomcat不好使,比如说,再windows下,一般tomcat都是注册曾系统服务器(服务登录方式设置为network service或者建立一个个人用户)的,这样的话 有的时候 通过命令net stop去关闭服务的时候,会出现死再那里的情况,我个人认为直接杀掉进程然后调用net start貌似比较合适,另外 应该重新建立一个tomcat服务,运行方式设置为本地系统 ,这样就有权限去调用命令,另外也不会导致自己的tomcat进程重启的时候没了,~~
编辑 回复 快速回复 TOP

Re:远程关闭与重启tomcat的方法

呵呵!这是一种方法而已,你可以在批处理里面,调用 net start 啊!!!
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP

Re:远程关闭与重启tomcat的方法

试过了,但是出现如下错误,不过不影响服务器启动,不知道这是什么错误。希望紫竹大哥能解释一下,尤其是第二个错误,第一个好像服务器已经开着的问题。
严重: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)
at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.java:138)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1016)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:791)
at org.apache.catalina.startup.Catalina.load(Catalina.java:503)
at org.apache.catalina.startup.Catalina.load(Catalina.java:523)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:247)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
2008-4-7 17:20:33 org.apache.catalina.startup.Catalina load
严重: Catalina.start
LifecycleException: Protocol handler initialization failed: java.net.BindExcept
ion: Address already in use: JVM_Bind:8080
at org.apache.catalina.connector.Connector.initialize(Connector.java:1018)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:791)
at org.apache.catalina.startup.Catalina.load(Catalina.java:503)
at org.apache.catalina.startup.Catalina.load(Catalina.java:523)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:247)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
2008-4-7 17:20:33 org.apache.catalina.startup.Catalina load
编辑 回复 快速回复 TOP

Re:远程关闭与重启tomcat的方法

因为那个 delay 没有到位
必须得等前一个彻底 shutdown 后才能 startup
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP

Re:远程关闭与重启tomcat的方法

delay.exe可否给我发一个,sunyujia@yahoo.cn谢了。
最好告诉在那下的,这个不是操作系统自带的吧,我机器上没有。
编辑 回复 快速回复 TOP
发新话题