當(dāng)我們進行 Web 應(yīng)用開發(fā)時,如果不進行配置,每次修改 Java 類文件都需要重啟服務(wù)器。如何讓服務(wù)器識別到類的更新并自動重新加載呢?其實很簡單。
一、配置方法
對于較新版本(5.5 之后)的 tomcat 服務(wù)器來說,只需要修改 \conf\context.xml
文件,給 Context
標(biāo)簽加上 reloadable="true"
這個屬性即可。比如原來 context.xml
是這個樣子的:
<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> </Context>
修改之后
<Context reloadable="true"> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> </Context>
二、幾點問題
1.配置 context.xml 后需要重啟服務(wù)器嗎?
tomcat 會定時掃描 context.xml 文件,按理說,一旦發(fā)現(xiàn)文件被修改,就會自動重新加載這個文件,而不需要重啟服務(wù)器 。然而實際上增加 reloadable="true" 這個屬性后,類的自動重載并沒有生效,需要重啟服務(wù)器。
1.什么情況適用自動重新加載?
自動重新加載只對修改現(xiàn)存的 Java 類文件(如 Servlet)有效,創(chuàng)建新的文件是不行的。
2.如何觸發(fā)自動重新加載?
在修改了類的源代碼(.java)后,需要重新編譯得到類文件(.class),并且需要使用客戶端(瀏覽器)訪問該 Web 頁面。對已打開的 Web 頁面,隨意點擊一下即可