Tomcat启动指定的Web工程

系统 1684 0

1.       最近碰到这样一个问题:项目使用到了报表,上线后,客户投诉报表经常每隔一段时间,就不能用了。后来我们发现只要将 Tomcat 重新启动下就没有问题了,应该是那个报表工具的性能不是很稳定造成的,大概每隔一个星期需要重启一次。

当然不能每次出问题就人工去重启,这样对客户、对我们来说都是不能长期接受的,所以这个问题得解决。

首先,将报表输出单独作为一个小的工程拿出来,这样即使报表出问题了,可以登陆到 Tomcat 的后台管理程序中,去只对这个报表工程重新 reload 一下,而不需要对整个项目重新启动,这样就可以减少对客户正常工作的影响

这样看似已经解决了问题,但是肯定还是要被客户投诉,因为我们不可能每天盯着报表工程,肯定是客户先来发现报表出问题,然后找我们,长期下去也不行。

接着,我们想,怎样写一个脚本,让 Tomcat 每天晚上(客户睡觉时,嘿嘿),去自动重启这个报表工程,于是查看 Tomcat 的管理文档,在 5)Manager 这部分的最下面,找到了解决问题的方案:

  1. 写一个可以重新启动报表工程的脚本

<?xml version="1.0" encoding="UTF-8"?>

<project name= "Gentle Application" default= "reload" basedir= "." >

 

    <!-- 需要管理的 Web 工程名 -->

    <property name= "path" value= "/EuropeReport" />

    <!-- Tomcat 管理控制台的 URL -->

    <property name= "url" value= "http://localhost:8088/manager" />

    <!-- tomcat 管理员的用户名、密码 -->

    <property name= "username" value= "admin" />

    <property name= "password" value= "adminadmin" />

 

    <!-- Configure the custom Ant tasks for the Manager application -->

    < taskdef name= "deploy" classname= "org.apache.catalina.ant.DeployTask" />

    < taskdef name= "list" classname= "org.apache.catalina.ant.ListTask" />

    < taskdef name= "reload" classname= "org.apache.catalina.ant.ReloadTask" />

    < taskdef name= "resources" classname= "org.apache.catalina.ant.ResourcesTask" />

    < taskdef name= "roles" classname= "org.apache.catalina.ant.RolesTask" />

    < taskdef name= "start" classname= "org.apache.catalina.ant.StartTask" />

    < taskdef name= "stop" classname= "org.apache.catalina.ant.StopTask" />

    < taskdef name= "undeploy" classname= "org.apache.catalina.ant.UndeployTask" />

    <!-- 停止 EuropeReport 工程 -->

    <target name= "stop" description= "stop web application" >

       <stop url= "${url}" username= "${username}" password= "${password}" path= "${path}" />

    </target>

    <!-- 启动 EuropeReport 工程 -->

    <target name= "start" description= "stop web application" >

       <start url= "${url}" username= "${username}" password= "${password}" path= "${path}" />

    </target>

    <!-- 重新启动 EuropeReport 工程 -->

    <target name= "reload" description= "Reload web application" >

       <reload url= "${url}" username= "${username}" password= "${password}" path= "${path}" />

    </target>

    <!-- 卸载 EuropeReport 工程 -->

    <target name= "undeploy" description= "Remove web application" >

       <undeploy url= "${url}" username= "${username}" password= "${password}" path= "${path}" />

    </target>

</projec

注:需要将 %TOMCAT_HOME%\lib\catalina-ant.jar ,拷贝到 %ANT_HOME%\lib 目录下

  1. 编写一个 bat 脚本,去执行 ant

ant   reload

  1. 并将这个 bat 脚本放到 windows 的执行计划中,每天定时执行该脚本。嘿嘿,解决了,不用再被客户投诉了。

Tomcat启动指定的Web工程


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论