一个WEB应用,做好了自动升级功能,可每次生级完成后,覆盖了一些文件,这个时候需要reload一下,或者重新启动一下tomcat. (别说自动reload自动的对配置文件无效)所以我这里必须得重新启动tomcat或者调用 tomcat manage 里的reload 请各位高手给点思路或者方法。用java程序去调用重启批处理吧。是可以达到效果,可是不灵活,bat的目录位置什么的每次都得需要设置,而且感觉太生硬,感觉不可控。我理想的方式是 想办法调用 tomcat manage 里的reload功能。各位大大有什么好办法么。

解决方案 »

  1.   

    两个思路:
    1、尝试用Tomcat的MBean来完成;
    2、将Tomcat注册为Windows服务,然后可以通过net命令来控制服务的启动和停止。其实BAT没啥不好的,把Tomcat执行目录设置入PATH,然后程序自动Telnet到服务器上,停止再启动,完毕。
    不过客观地说,经常reload context,其实不好,容易导致永久区溢出。还是重启比较稳妥。
      

  2.   

    就写批处理文件没有问题。
    把tomcat设置成系统服务,写一个重启tomcat的脚本。执行完文件更新脚本后,再执行重启tomcat的脚本。
    不知道楼主的自动升级功能是怎么做的,如果可以,把执行重启tomcat的脚本放置到自动升级的后面,这样就可以完成升级后直接重启tomcat。
      

  3.   

    试试看用URLConnection或httpclient刷新reloa的url,http://localhost:port/manager/html/reload?path=/XXX...
    LZ可以参考
    http://hi.baidu.com/axhack/blog/item/401293f4ab5aad64ddc474c7.htmlbat的话,可以考虑放在tomcat路径下,这样如果配置了tomcat的home环境变量,应该可以定位到bat的