欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
關(guān)于不重啟Tomcat自動(dòng)加載改變的class文件

修改server.xml,在Host標簽下加入以下配置

<Context path="" docBase="FileManager" reloadable="true"></Context><Context path="/FileManager" docBase="FileManager" reloadable="true"></Context>

第一個(gè)Context是為了ip+端口直接指向FileManger這個(gè)項目。
path代表的是URL入口,例如第一個(gè)代表localhost:8080,第二個(gè)則代表localhost:8080/FileManger。

docBase是物理路徑,可以是絕對路徑,也可以是相對Host標簽中appBase的相對路徑,而Host標簽中appBase的默認值是webapps文件夾,所以這里的FileManger就代表webapps下的FileManager文件夾。

這里的path+docBase的配置就表示了ip+端口或者ip+端口+/項目名稱(chēng)都可以指向你的項目。

reloadable就告訴Tomcat需要監控WEB-INF中的class文件,如果有變化了,就需要重新加載。并且是重新加載整個(gè)項目的,包括web.xml等等。

但是這樣修改是不會(huì )監控web.xml變化的,web.xml變了之后并不會(huì )重新加載項目。而且直接在server.xml里配置,server.xml變化了Tomcat是不會(huì )重新加載的,必須重新啟動(dòng)Tomcat才會(huì )更新server.xml中的內容。

加入WatchedResource標簽,首先我嘗試了直接在server.xml直接加入:

<Context path="" docBase="FileManager" reloadable="true">       <WatchedResource>WEB-INF/web.xml</WatchedResource></Context><Context path="/FileManager" docBase="FileManager" reloadable="true">       <WatchedResource>WEB-INF/web.xml</WatchedResource></Context>

但是這樣并沒(méi)有效果,web.xml變了后,Tomcat并沒(méi)有reload,原因暫時(shí)不知道。

在項目的META-INF中加入context.xml:

<?xml version='1.0' encoding='utf-8'?><Context reloadable="true">    <WatchedResource>WEB-INF/web.xml</WatchedResource>    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource></Context>

此時(shí),server.xml的配置如下:

<Context path="" docBase="FileManager" reloadable="true"></Context>

因為如果在server.xml里配置了Context,就不會(huì )加載項目中的META-INF中的context.xml

我在這里的想法是通過(guò)server.xml里這樣配置,指定ip+端口可以直接指向我的那個(gè)項目,然后再在項目的META-INF中配置context.xml實(shí)現監控web.xml。

事實(shí)證明,ip+端口或者ip+端口+項目名都可以自動(dòng)加載改變的class文件了,并且也會(huì )在web.xml變化的時(shí)候重新加載,但是修改web.xml指揮改變ip+端口+項目名的,而不會(huì )變化ip+端口,例如,我將welcom-file改成Home1.jsp,這時(shí)前者會(huì )報404錯誤(因為我的項目中并沒(méi)有Home1.jsp,這證明了它的web.xml確實(shí)改變了,但是后者卻依然可以正常訪(fǎng)問(wèn),并且是指向了原先的Home.jsp)。

分析下原因,在第二部分提到了再server.xml里直接加WatchedResource無(wú)效,所以其實(shí)按照第三部分的設置,ip+端口只是指向了FileManger那個(gè)文件夾,并沒(méi)有監控web.xml的變化。(原因依然未知,為啥在那里設置WatchedResource無(wú)效?

經(jīng)過(guò)前三部分的試驗,再結合ip+端口默認加載的是webapps下ROOT文件夾下的項目,應該可以想到了一個(gè)解決方案了。

將FileManger文件夾下的項目拷貝到ROOT文件夾下,server.xml配置文件不用加額外配置,在兩個(gè)文件夾下中的META-INF中都加入內容如第三部分的context.xml文件,這樣就可以都監控到class文件變化,也可以監控web.xml變化了。但是這樣的話(huà)軟件更新就必須要改兩處地方,更好的解決方案也沒(méi)有想到,因為對Tomcat的配置也不是特別清楚。

注意

這樣不重啟Tomcat自動(dòng)加載class文件,有時(shí)候控制臺會(huì )報錯,內容如下:

Illegal access: this web application instance has been stopped already.  Could not load ********.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.

這個(gè)是因為T(mén)omcat在重新加載class的時(shí)候是重新裝載整個(gè)web項目的,并沒(méi)有關(guān)閉所有線(xiàn)程,在Tomcat關(guān)閉后,那些線(xiàn)程依然運行,這樣就會(huì )導致這些錯誤。

我用了DBCP來(lái)管理連接,每次都是那塊報這個(gè)錯誤,但是好像并沒(méi)有影響軟件的使用,等那些沒(méi)有關(guān)閉的線(xiàn)程都關(guān)閉后,就不會(huì )繼續報錯了。如果不想報錯的話(huà),只能重啟Tomcat,把reloadable設置成false。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
tomcat 7 doc筆記
Tomcat的安裝配置和測試
Tomcat中context.xml的配置
UC頭條:Tomcat就是這么簡(jiǎn)單
Windows環(huán)境下,Nginx+tomcat+redis實(shí)現web項目集群
設置Tomcat默認訪(fǎng)問(wèn)路徑
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久