預設的,jboss從 JBOSS_HOME/standalone/deployments這個目錄尋找應用並進行部署。
這個資訊配置在JBOSS_HOME/standalone/configuration/standalone.xml這個檔案中,找到
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.0">
在這個檔案中,它已經存在了一個
<deployment-scanner>子節點,它配置了伺服器到相對於 jboss.server.base.dir的deployments目錄下尋找要部署的應用,如下所示:
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.0"> <deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir" path="deployments" /> </subsystem>
這個預設配置代表著,在相對於系統變數jboss.server.base.dir的deployments目錄下,尋找應用進行部署,每5秒鐘掃描一次。
scanner還有其他的一些配置屬性:
比如我們單位關於jboss的路徑配置是這樣的:
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"><deployment-scanner path="." relative-to="jboss.server.base.dir" auto-deploy-zipped="false" auto-deploy-exploded="false" auto-deploy-xml="false" /></subsystem>
意思我就不解析了,圖中解釋的很明了。
此外,如果要額外添加部署目錄,可以添加新的deployment-scanner,比如/home/me/as7/mydeployments作為我的部署目錄,配置內容如下:
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.0"> <deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir" path="deployments" /> <deployment-scanner name="my-external-deployment-scanner" path="/home/jpai/as7/deployments" scan-interval="5000" /> </subsystem>
這裡在描述下jboss部署的一些流程:
使用者可以將部署內容(war、ear、jar、sar等)放在standalone/deployments目錄內,JBoss運行時會自動部署到伺服器上,這也是開發時常採用的方式。
部署模式:
1. 自動部署:
掃描器直接監控部署內容,自動部署新的內容。在standalone.xml中與自動部署有關的內容:
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>
</subsystem>
由以上配置中可以看出JBoss會每隔5秒鐘去掃描deployments目錄(當JBoss以standalone模式啟動並執行時候),您也可以將自動掃描的路徑更改為別的地方,同時,您也可以配置多個自動掃描的路徑。
由此,只需要把項目包放到所掃描的目錄,之後系統會自動部署,部署好了之後會產生一個內容為***.war的***.war.deployed檔案
項目在部署時會有以下幾種標記檔案:
標記檔案與相關的部署內容同名,只是附加了一個尾碼名。不同的尾碼名表明不同的意義。
.dodeploy 由使用者放置,表明內容應該被部署或重新部署到運行時
.skipdeploy 只要這個檔案存在, 禁用自動部署.
.isdeploying 部署掃描服務放置,表明它已經注意到一個. dodeploy檔案,正處在部署內容的過程中,當部署完成後,將自動刪除這個檔案。
.deployed 部署掃描服務放置,表明內容已經被部署到運行時,如果刪除此檔案將取消部署。
.failed 部署掃描服務放置,表明部署失敗,
.isundeploying 部署掃描服務放置,表明它已經注意到一個.deployed檔案已經被刪除,正在取消部署內容。執行完畢後這個檔案也會被刪除。
.undeployed 部署掃描服務放置,表明內容已經村運行時刪除,如果使用者刪除這個檔案,在手動模式下不會造成影響,自動模式下會重新部署。
.pending 部署掃描服務放置,表明它已經注意到要部署內容,但尚未通知伺服器部署,如果掃描器檢測到一些自動部署內容仍在複製過程中,或者存在一些阻止自動部署的問題,將建立這個檔案。只要這個條件成立,掃描器不會通知伺服器部署或取消部署任何內容。
2. 手動部署:
可通過自己手動建立檔案來部署新的項目,如:
拷貝一個test.war的項目包到deployment目錄下,之後手動建立一個檔案內容為test.war的檔案名稱為test.war.deployed的檔案,之後便可訪問地址http://127.0.0.1/test
您也可以拷貝一個展開的項目放到deployment目錄下面,但要確保項目目錄名尾碼為.war之類的檔案目錄,如:把test.war項目展開到test目錄,需要把test目錄拷貝到deployment目錄下,同時更改名字為test.war,同樣之後建立一個檔案內容為test.war的test.war.deployed的檔案即可。
ref:http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.jboss.as/jboss-as-deployment-scanner/7.1.3.Final/org/jboss/as/server/deployment/scanner/LocalDescriptions_zh_CN.properties
https://developer.jboss.org/wiki/DeployingAnApplicationFromAnExternalDeploymentLocation
https://docs.jboss.org/author/display/AS7/Deployment+Scanner+configuration
http://www.minunix.com/2013/08/jboss-as7-01/