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

GlassFish 部署 Web 應用完整指南:安裝、配置、JDBC 資料源與管理主控台

     編輯:Java 相關知識

GlassFish 是 Java EE (現 Jakarta EE) 參考實作,與 NetBeans 深度整合,是開發與生產環境部署的優秀選擇。本文涵蓋 GlassFish v2/v3 經典版本的安裝、端口配置、三種部署方式、JDBC 連線池與資料源設定,並針對生產環境最佳實踐給出建議。

一、開發工具選型:NetBeans + GlassFish 黃金搭檔

  • NetBeans 對 GlassFish 支援最完整 (專案建立、除錯、熱部署、Server Log 整合)。
  • 版本對應:NetBeans 5.5.1 ↔ GlassFish v2 (穩定);NetBeans 6.x 早期版本較不穩;現代建議 NetBeans 12+ + GlassFish 6+ (Jakarta EE 9)。

二、GlassFish 安裝與基礎配置

1. 下載與安裝

# 下載 glassfish-installer.jar
java -Xmx256m -jar glassfish-installer.jar
# 接受授權條款後解壓至 glassfish/ 目錄

2. 核心配置 (setup.xml / asadmin)

關鍵端口與帳號預設值:

屬性預設值說明
admin.port4848管理主控台 HTTPS 端口
instance.port8080HTTP 請求端口 (Web 應用訪問)
https.port8181HTTPS 端口
admin.useradmin管理員帳號
admin.passwordadminadmin管理員密碼 (生產環境必須修改)
orb.port3700IIOP/RMI 端口 (EJB 遠端呼叫)
imq.port7676JMS Message Queue 端口

修改方式:編輯 setup.xml 對應 <property>,執行 ant -f setup.xml;或安裝後用 asadmin 熱修改。

3. 啟動/停止域

cd glassfish/bin
./asadmin start-domain domain1  # 預設域名
./asadmin stop-domain domain1
# 驗證: 瀏覽器開啟 https://localhost:8080

三、Web 應用部署三種方式

方式 1:自動部署目錄 (開發/測試最快)

cp myapp.war glassfish/domains/domain1/autodeploy/
# GlassFish 掃描到 .war/.ear 即自動部署,刪除檔案即解除部署

⚠ 僅適用開發環境,生產環境不建議 (無版本控制、無滾動更新、掃描間隔不可控)。

方式 2:asadmin 命令列 (腳本自動化/ CI/CD 首選)

# 部署
asadmin deploy --name myapp --contextroot /myapp /path/to/myapp.war

# 解除部署
asadmin undeploy myapp

# 列出已部署
asadmin list-applications

# 幫助
asadmin deploy --help

支援遠端部署:asadmin --host prod-server --port 4848 --user admin deploy ...

方式 3:管理主控台 GUI (圖形化、遠端操作、生產環境推薦)

  1. 開啟 https://localhost:4848 (接受自簽憑證)
  2. 登入 admin / adminadmin
  3. 左側選單:Applications → Web Applications → Deploy
  4. 選擇本機 .war,填寫 Context Root (如 /myapp),勾選「預編譯 JSP」、「啟用」等選項
  5. 點 OK,即時顯示部署結果日誌

優勢:遠端部署零 SSH、視覺化狀態、支援 EAR/EJB/JAR 多模組、可調整部署參數 (虛擬伺服器、類別載入器策略、Session 持久化)。

四、JDBC 連線池與資料源配置 (JNDI 註冊)

Java EE 應用透過 @Resource 或 web.xml 註入 DataSource,容器必須預先配置好 JNDI 名稱。

步驟 1:建立連線池 (Connection Pool)

  1. 主控台:Resources → JDBC → Connection Pools → New
  2. 名稱:MySqlPool
  3. Resource Type:javax.sql.ConnectionPoolDataSource (或 XADataSource 分散式事務)
  4. Database Vendor:MySQL (下拉選單自動帶入驅動類別)
  5. 下一步 → Additional Properties 關鍵屬性:

點「Finish」→ 點「Ping」驗證連線成功 (綠勾)。

步驟 2:建立 JDBC 資料源 (JNDI Name)

  1. Resources → JDBC → JDBC Resources → New
  2. JNDI Name:jdbc/MyAppDS (必須與 persistence.xml / @Resource 完全一致)
  3. Pool Name:選 MySqlPool
  4. 啟用:勾選

步驟 3:應用程式引用

// persistence.xml
<jta-data-source>jdbc/MyAppDS</jta-data-source>

// 或 @Resource 注入
@Resource(lookup = "jdbc/MyAppDS")
private DataSource ds;

重新部署應用,NameNotFoundException 即解決。

五、生產環境加固清單

  • 修改預設密碼:asadmin change-admin-password,啟用安全管理 asadmin enable-secure-admin (需重啟)。
  • 啟用 HTTPS:管理主控台 4848 預設 HTTPS,應用端 8181 配置有效憑證 (Let's Encrypt / 企業 CA)。
  • JVM 調優:domain.xml <jvm-options>-Xms2g -Xmx4g -XX:+UseG1GC</jvm-options>。
  • 連線池監控:主控台「監控」頁檢視連線洩漏、等待佇列、SQL 執行時間。
  • 日誌輪轉:配置 logging.properties 滾動檔案大小/保留天數。
  • 叢集/高可用:GlassFish 5+ 支援 asadmin create-cluster、create-instance、enable-http-lb-application 負載平衡。

總結

掌握 asadmin CLI 自動化部署、管理主控台視覺化運維、JDBC 資料源 JNDI 註冊三大核心技能,即可輕鬆駕馭 GlassFish 從開發到生產的全生命週期。隨著 Jakarta EE 10+ 發展,建議遷移至 GlassFish 7+ (支援 JDK 17/21、Jakarta EE 10 規範),享受更現代的配置模型 (MicroProfile Config) 與雲原生就緒特性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
Property範例值
URLjdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
Userapp_user
Password********
driverClasscom.mysql.cj.jdbc.Driver
maxPoolSize50
idleTimeout300