[list=1]
[*]不能實現熱部署。也就是當你修改了你的web工程中的某個類時,必須要重新打包才能反應出變化。即使你做了很小的一個修還也要重新打包部署你的web工程,這樣做有時候是很耗費時間的。
[*]沒有辦法定義你自己的Context。在Jboss裏面我們可以在application.xml裏面定義你的Web項目在訪問時候的根目錄,也就是Context。但是在tomcat裏面,如果使用打包部署的方式是沒有辦法指定Context的。
[/list]
爲了解決上面的兩個問題,我們可以再Tomcat的配置文件server.xml中(位於%CATALINA_HOME%/conf/server.xml),添加一個<Context/>標籤。具體如下:
<Host name="localhost"
debug="DEBUG"
appBase="webapps"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false">
<Context path="/myapp" docBase="c:/myapp"/>
.....
....
</Hose>
實現tomcat熱部署需要修改context.xml,位於%CATALINA_HOME%/conf/context.xml。如下:
<Context antiJARLocking="true" antiResourceLocking="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>
注意放置<Context>標籤的位置,在<Host>標籤內部。
其中屬性path指定了Context。按照以上的配置,你訪問你的web工程的url應該是:http://localhost:8080/myapp/xxx.do這樣的形式。http://localhost:8080/myapp是根路徑。
doBase屬性告訴tomcat到c:/myapp這個目錄下去加載web工程。一般這個目錄都是我們的開發目錄,這樣我們改動就可以直接反映出來,而不需要重新部署。
當然對代碼做了修改需要重新編譯,而且修改了任何配置文件最好是重新啓動一下Tomcat。 :shock: