需要啟動的有
*.java;*.xml;配置文件
不需要啟動的有
*.jsp
配置文件改了要重起,
servlet改了編譯完reload,
jsp只用刷新頁面
1、首先為Tomcat添加一個manager的role:在TOMCAT_HOME\conf\tomcat-users.xml文件中將
<user username="tomcat" password="tomcat" roles="tomcat"/>
修改為
<user username="tomcat" password="tomcat" roles="tomcat,manager"/>
2、啟動http://localhost:8080/,點頁面左上角的"Tomcat Manager"(用戶名&密碼就是上面設置的,默認都是tomcat),進入Web項目管理頁面;
3、以后在Eclipse中更改servlet、java、xml、properties等文件后,需要對相應的Web項目點“Reload”按鈕,才能讓Tomcat部署和Eclipse中同步(而JSP文件自動同步,無需如此)。
修改servlet而不需要重新啟動tomcat服務器和websphere服務器,可以提高開發速度。
(1)修改servlet而不重新啟動tomcat
修改
%TOMCAT_HOME%\conf\server.xml
大致如下:
<Context path="" docBase="ROOT" debug="0" reloadable="true"/>
其中reloadable就是配置是否自動reload的,把它設為true,如果沒有這一項,加上。
(2)修改webshpere中的servlet而不重新啟動服務:
修改..\WEB-INF下面的web.xml:
加入<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmlns:webapplication="webapplication.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="WebApp_ID_Ext" reloadInterval="3" reloadingEnabled="true" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="true"
>
其中reloadInterval="3" reloadingEnabled="true" fileServingEnabled="true" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="true"是主要的,reloadInterval="3" reloadingEnabled="true" 是說修改后3秒自動重新載
入。
讓tomcat自動加載修改過的類和servlet
我們在開發的過程經常需要調試,也常常需要修改使用的類和servlet,如果是使用war方式tomcat可以自動重新發布,但是通常情況下我們使用tomcat開發的時候不會進行打包發布,那么如何讓tomcat自動加載你修改過以后拷貝到webapps的某個應用中的類呢?其實很簡單,對於某個應用,我們一般會在tomcat的配置文件server.xml為它建一個context,為應用配置數據源等,我們修改這個應用的context就可以達到讓tomcat自動加載的目的:
例如:
<Context path="/test" docBase="test"
debug="0" privileged="true" reloadable="true" >
</Context>
最重要的就是 reloadable="true"了。
讓tomcat5自動加載web應用
tomcat可以監視你的web應用,當其中的內容發生變化時(比如servlet被重新編譯,jsp頁面改動),自動加載新的內容,不過這項功能默認是關閉的,需要手動修改配置文件
我在一些教程里面看到,要使tomcat能夠自動加載,需要修改$CATALINA_HOME/conf/server.xml文件,在需要監視的web應用對應的context元素中,增加一個reloadable屬性為true,即<Context reloadable="true">,修改完成后重啟tomcat即可
不過上述教程是針對tomcat4.x的,我現在用的是tomcat5.5,當打開$CATALINA_HOME/conf/目錄時,可以看到還有context.xml文件,打開一看里面只有一個context元素,再看看注釋,這是一個全局的配置文件,可以影響所有的context元素
由於和教程上的有些出入,覺得不太踏實,遂打開tomcat的配置說明文檔,原來自tomcat5開始,已經不推薦把context放在$CATALINA_HOME/conf/server.xml文件中進行修改了,因為那樣只有在服務器重啟后,對context的修改才能生效.tomcat提供了幾種替代方案:
1.修改$CATALINA_HOME/conf/context.xml 文件,也就是上面提到的方法
2.$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default 文件,默認在這個host下的所有web應用都會使用這個配置文件
3.在$CATALINA_HOME/conf/[enginename]/[hostname]/ 目錄下,如果你要配置名為abc的web應用,那么新建一個名為abc.xml的文件,tomcat會自動搜索這個目錄下的xml文件,並將相同文件名與web應用關聯.如果是多級的,則在文件名中使用#分開,比如abc/efg的context文件名為abc#efg.xml
4.最后,對於每個web應用,可以在/META-INF/context.xml 設置
不過,設置自動加載后,tomcat會隔幾秒掃描一遍對應的目錄,那樣會帶來 不必要的性能損失,只適合在開發階段使用