首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

JBoss AS 7 專案部署完整指南:自動部署、手動部署、標記檔案與管理 CLI

     編輯:J2EE

前言

JBoss AS 7 部署機制較舊版大幅變更:採用掃描器掃描 standalone/deployments 目錄,並引入標記檔案 機制讓使用者控制部署行為。本文實戰演示 WAR/EAR 部署、自動/手動模式切換、資料源配置與標記檔操作。

環境啟動

$ cd jboss-as-7.0.0.Final/bin
$ ./standalone.sh

部署簡單 Web 專案 (Maven WAR)

  1. 建立專案:mvn archetype:generate -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
  2. 打包:mvn package → target/my-webapp.war
  3. 複製至掃描目錄:cp target/my-webapp.war $JBOSS_HOME/standalone/deployments/
  4. 日誌顯示部署成功:Deployed "my-webapp.war",context-root 為 /my-webapp。

自動部署 vs 手動部署

配置檔控制

standalone/configuration/standalone.xml 中 deployment-scanner 子系統:

<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.0">
    <deployment-scanner scan-interval="5000"
        relative-to="jboss.server.base.dir" path="deployments"/>
</subsystem>
  • scan-interval:掃描間隔 (毫秒)。
  • auto-deploy-zipped="true":自動部署 .war/.ear 壓縮檔。
  • auto-deploy-exploded="false":不自動部署展開目錄。

管理 CLI 即時切換

$ ./jboss-cli.sh --connect
[standalone@localhost:9999 /] /subsystem=deployment-scanner:read-resource(recursive=true)
[standalone@localhost:9999 /] /subsystem=deployment-scanner/scanner=default:remove  # 停用自動掃描
[standalone@localhost:9999 /] deploy /path/to/app.war  # 手動部署
[standalone@localhost:9999 /] /subsystem=deployment-scanner/scanner=default:add(scan-interval=5000,relative-to=jboss.server.base.dir,path=deployments)  # 恢復

標記檔案機制

部署目錄下的標記檔 (同檔名 + 後綴) 表示狀態與指令:

標記檔含義誰建立
.deployed部署成功掃描器
.failed部署失敗掃描器
.isdeploying正在部署中掃描器
.dodeploy請求部署 (覆蓋失敗/更新)使用者
.undeploy請求解除部署使用者
.skipdeploy忽略此檔案使用者

實戰:修正資料源後重新部署

  1. 專案 demo.war 部署失敗,產生 demo.war.failed。
  2. 修正 persistence.xml 中 JNDI 名稱:java:jboss/datasources/ExampleDS (AS7 內建 H2 資料源)。
  3. 重新打包覆蓋 demo.war (此時掃描器不會自動重新部署失敗項目)。
  4. 建立標記檔:touch demo.war.dodeploy。
  5. 觀察 .isdeploying → .deployed,部署完成。

部署完整 Java EE 6 專案 (Weld + EJB3 + JPA + JSF + RESTEasy)

使用 JBoss 提供的原型快速生成:

mvn archetype:generate \
  -DarchetypeArtifactId=jboss-javaee6-webapp \
  -DarchetypeGroupId=org.jboss.weld.archetypes \
  -DarchetypeVersion=1.0.1.Beta1 \
  -DgroupId=net.bluedash -DartifactId=demo -Dversion=1.0-SNAPSHOT

注意:需 Maven 3.0+ 編譯。部署流程同上,只需確保資料源 JNDI 名稱與 AS7 內建或自訂資料源一致。

小結

  • 掌握 standalone/deployments 掃描目錄與 standalone.xml 掃描器配置。
  • 善用 CLI 進行手動部署與掃描器動態控制。
  • 理解標記檔案狀態流轉,精確控制部署時機。
  • 資料源配置集中在 standalone.xml,專案引用 JNDI 名稱即可。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved