Tomcat 修改 Java 類別後需重啟容器才能生效,嚴重拖慢開發迭代速度。GlassFish v2(現 Payara / Eclipse GlassFish 前身)引入目錄部署,支援 JSP/HTML/資源檔即時生效,Java 類別只需觸發 .reload 檔案時間戳即可熱重載,無需重啟 JVM。
glassfish-installer-v2ur2-b04-linux.jar 等)asadmin start-domain domain1$GLASSFISH_HOME/bin/asadmin deploydir /path/to/your/project/root
# 範例:deploydir D:/Sample
部署成功後,直接訪問 https://localhost:8080/Sample/。
| 修改類型 | 行為 | 生效方式 |
|---|---|---|
| JSP / HTML / CSS / JS | 儲存後瀏覽器重整即見新內容 | 自動偵測檔案變更 |
| Java 類別 (Servlet, Bean, ...) | Eclipse 自動編譯產生 .class,但 GlassFish 不會立即載入 | 建立/修改專案根目錄下的 .reload 檔案(內容可為空) |
# 觸發熱重載(Linux/Mac)
touch .reload
# Windows 可使用 touch.exe 或寫入任意字元後儲存
echo. > .reload
控制台將顯示 Module [Sample] reloaded,Servlet 新邏輯即刻生效。
.reload 觸發手動觸發繁瑣,可整合到 Eclipse External Tools:
touch.exe 放入專案根目錄。Touch Reload${workspace_loc:/Sample/touch.exe}${workspace_loc:/Sample}.reload工具列即出現按鈕,點一下即完成熱重載。
domain.xml 的 <jdbc-resource> 對應 Tomcat context.xml 的 <Resource>。java:comp/env/jdbc/... 相容 Tomcat。<session-manager> 的 persistence-type="ha"。