常用的web服務器一般爲tomcat和jboss,現一一做介紹。
1.tomcat熱部署
在 tomcat中支持熱部署有兩種方式(在原理上來說,這兩種方式是一致的,只是放的位置不同)
a)在 catalina_base/conf/catalina/localhost/中依照manager.xml定義一個xml文件,比如我的項目稱作 sodoperation,我們就可以寫一個sodoperation.xml,內容如下:
<context path="/sodoperation" docBase="d:/myportal/sodoperation/src/webapp"/>
其中,path指的是你在tomcat中的項目名稱,就像manager一樣,docBase是指你的項目所在的web目錄。一直到歡迎頁面爲止(也就是 web-inf的前一個目錄)。但是一般來說,這個目錄中最好不要有中文,如果有的話,可以在文件開始加入
<?xml version='1.0" encoding='utf-8' ?>來試一下,即整個文件變爲:
<?xml version='1.0" encoding='utf-8' ?>
<context path="/sodoperation" docBase="d:/myportal/sodoperation/src/webapp"/>
這樣就可以了,如果用這種廣告,同時使用myeclipse的部署的話,輕易不要remove,這樣會使文件都會被刪掉,不能持久。所以,建議使用第二種方法。
b)第二種方法和第一種方法在原理上是一致的,其區別就是位置的不同,這次在catalina_base/conf下的server.xml,在文件末加入:
<context path="/sodoperation" docBase="d:/myportal/sodoperation/src/webapp"/>
<Context path="/oa" docBase="D:/workspace/firstoa/webapp" debug="0" reloadable="false">
reloadable="false"這個菜是關鍵!要麼不用寫這個參數,要麼設爲false
解釋和上面一樣,這種方法在啓動tomcat後,會在catalina_base/conf/catalina/localhost/中加入一個與第一種方法的文件。這樣保證,只要對 server.xml不做修改,你可以隨便對新生成的文件刪除,對熱部署沒有任何問題。
例如:
<Host appBase="webapps" autoDeploy="true" name="localhost"
unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
<Context docBase="D:/work/work/WebContent"
path="/app1">
</Context>
</Host>
2.jboss熱部署
在 jboss中做熱部署也有兩種方法,因爲jobss集成了tomcat,也可以說這兩種方法是在jobss上的一個修改。
a)修改jboss-4.0.4RC1/server/default/deploy/jbossweb-tomcat55.sar/context.xml
<Context cookies="true" crossContext="true" antiResourceLocking="true" antiJARLocking="true">
<Manager pathname=""/>
<InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceListener>
</Context>
加上紅色的部分,重啓jboss,再用myeclipse Redeploy project的時候就不需要重啓,部署完了直接開瀏覽器預覽啦