1.
???
?
最近碰到這樣一個(gè)問(wèn)題:項(xiàng)目使用到了報(bào)表,上線(xiàn)后,客戶(hù)投訴報(bào)表經(jīng)常每隔一段時(shí)間,就不能用了。后來(lái)我們發(fā)現(xiàn)只要將
Tomcat
重新啟動(dòng)下就沒(méi)有問(wèn)題了,應(yīng)該是那個(gè)報(bào)表工具的性能不是很穩(wěn)定造成的,大概每隔一個(gè)星期需要重啟一次。
當(dāng)然不能每次出問(wèn)題就人工去重啟,這樣對(duì)客戶(hù)、對(duì)我們來(lái)說(shuō)都是不能長(zhǎng)期接受的,所以這個(gè)問(wèn)題得解決。
首先,將報(bào)表輸出單獨(dú)作為一個(gè)小的工程拿出來(lái),這樣即使報(bào)表出問(wèn)題了,可以登陸到
Tomcat
的后臺(tái)管理程序中,去只對(duì)這個(gè)報(bào)表工程重新
reload
一下,而不需要對(duì)整個(gè)項(xiàng)目重新啟動(dòng),這樣就可以減少對(duì)客戶(hù)正常工作的影響
這樣看似已經(jīng)解決了問(wèn)題,但是肯定還是要被客戶(hù)投訴,因?yàn)槲覀儾豢赡苊刻於⒅鴪?bào)表工程,肯定是客戶(hù)先來(lái)發(fā)現(xiàn)報(bào)表出問(wèn)題,然后找我們,長(zhǎng)期下去也不行。
接著,我們想,怎樣寫(xiě)一個(gè)腳本,讓
Tomcat
每天晚上(客戶(hù)睡覺(jué)時(shí),嘿嘿),去自動(dòng)重啟這個(gè)報(bào)表工程,于是查看
Tomcat
的管理文檔,在
5)Manager
這部分的最下面,找到了解決問(wèn)題的方案:
-
寫(xiě)一個(gè)可以重新啟動(dòng)報(bào)表工程的腳本
<?xml version="1.0" encoding="UTF-8"?>
<project
name=
"Gentle Application"
default=
"reload"
basedir=
"."
>
???
<!--
需要管理的
Web
工程名
-->
???
<property
name=
"path"
value=
"/EuropeReport"
/>
???
<!-- Tomcat
管理控制臺(tái)的
URL -->
???
<property
name=
"url"
value=
"http://localhost:8088/manager"
/>
???
<!-- tomcat
管理員的用戶(hù)名、密碼
-->
???
<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>
???
<!--
啟動(dòng)
EuropeReport
工程
-->
???
<target
name=
"start"
description=
"stop web application"
>
??????
<start
url=
"${url}"
username=
"${username}"
password=
"${password}"
path=
"${path}"
/>
???
</target>
???
<!--
重新啟動(dòng)
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
目錄下
-
編寫(xiě)一個(gè)
bat
腳本,去執(zhí)行
ant
,
ant
?
reload
-
并將這個(gè)
bat
腳本放到
windows
的執(zhí)行計(jì)劃中,每天定時(shí)執(zhí)行該腳本。嘿嘿,解決了,不用再被客戶(hù)投訴了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
