新聞中心
1. GlassFish替換Tomcat背景

成都創(chuàng)新互聯(lián)公司專(zhuān)注于東平企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站開(kāi)發(fā)。東平網(wǎng)站建設(shè)公司,為東平等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站開(kāi)發(fā),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
用了很多年的Tomcat, 無(wú)論開(kāi)發(fā)環(huán)境還是生產(chǎn)環(huán)境, 應(yīng)該說(shuō), 大家對(duì)它還是基本滿意的.不過(guò), 也不是一點(diǎn)問(wèn)題沒(méi)有. 從開(kāi)發(fā)人員的角度來(lái)說(shuō), Tomcat主要的缺點(diǎn)就是較弱的熱部署(hot deploy)能力. 修改一個(gè)Java類(lèi), 保存后, Tomcat會(huì)重新加載這個(gè)類(lèi), 但不久就要重新啟動(dòng)Tomcat才能繼續(xù)開(kāi)發(fā). 在企業(yè)關(guān)鍵應(yīng)用的場(chǎng)景下, 若發(fā)生急迫的程序缺陷更正, 讓眾多的用戶停止手頭的工作, 等待服務(wù)器重新啟動(dòng), 顯然十分不便.
類(lèi)似RubyOnRails的技術(shù)框架, 其方便之處就是腳本語(yǔ)言不要編譯, 保存后直接可以使用.Java社區(qū)顯然看到了這個(gè)問(wèn)題, GlassFish v2 的熱部署能力就是其主要的一個(gè)受大家歡迎的特性. 這也是我們要用 GlassFish v2 替換 Tomcat 5.x 的主要理由.
2. 使用環(huán)境
本文假設(shè)你使用下面所述的開(kāi)發(fā)環(huán)境.
(1) JDK 1.5 或 1.6
(2) Eclipse IDE for Java EE Developers (3.3.1.1 M20071023-1652)
(3) 使用 com.sysdeo.eclipse.tomcat_3.2.1 插件
如果你沒(méi)有使用 Eclipse 3.3.1.1 Java EE 版本, 而是正在使用其他版本, 也不影響本文所述的所有操作和效果, 只是不能借助Eclipse 啟動(dòng)和停止 GlassFish v2, 只能自己通過(guò)命令行進(jìn)行操作.
有關(guān)用 Eclipse 3.3.1.1 Java EE 版本操作 GlassFish v2 的詳細(xì)說(shuō)明, 請(qǐng)參見(jiàn) Eclipse 3.3 and GlassFish Java EE 5 integration.
3. 下載并安裝 GlassFish v2
這方面的資料已經(jīng)很容易從網(wǎng)上找到, 比較好的文章如下:
(1) 在Glassfish上部署web應(yīng)用
(2) Glassfish初試
(3) 從tomcat到glashfish(glassfish的安裝啟動(dòng)筆記)
4. 創(chuàng)建 Tomcat 項(xiàng)目
相信你一定也知道如何創(chuàng)建 Tomcat 項(xiàng)目. 本文假設(shè)你創(chuàng)建的 Tomcat 項(xiàng)目:
(1) 位于 D:/Sample 目錄.
(2) Context name 為 Sample.
其他采用默認(rèn)設(shè)置.
5. 為測(cè)試 GlassFish v2 的熱部署能力, 創(chuàng)建首頁(yè)JSP和Servlet Java類(lèi).
第1步: 在根目錄中創(chuàng)建 index.jsp 文件
第2步: 在 WEB-INF\src 中, 創(chuàng)建一個(gè)簡(jiǎn)單的 servlet 類(lèi) SampleServlet.java,
第3步: 配置web.xml文件.
完整的Sample項(xiàng)目, 請(qǐng)參見(jiàn)附件.
6. 什么是 GlassFish v2 的目錄部署?
用Tomcat開(kāi)發(fā)時(shí), JSP/HTML/JS/CSS 等文件, 都是修改后保存, 刷新瀏覽器就可以使用.為了使 GlassFish v2 達(dá)到同樣的效果, 需要使用其目錄部署(directory deployment)特性.
這個(gè)特性不太容易找, 因?yàn)槭褂孟驡lassFish這樣的全功能應(yīng)用服務(wù)器的開(kāi)發(fā)人員,習(xí)慣了"編輯、編譯、部署、運(yùn)行"這樣的步驟. 一開(kāi)始, 我按照 Eclipse 3.3 and GlassFish Java EE 5 integration.
一文的指引, 發(fā)現(xiàn)修改JSP文件后,仍然要經(jīng)歷上面的部署過(guò)程. 雖然Eclipse會(huì)通過(guò)自動(dòng)檢測(cè)文件版本的變化, 觸發(fā)Ant任務(wù)實(shí)現(xiàn)部署, 但仍然很浪費(fèi)時(shí)間. 我們需要找到跳過(guò)"部署"的方法.在GlassFish官方論壇上發(fā)了幾個(gè)帖子, 答復(fù)者的回帖沒(méi)有起到什么作用, 但通過(guò)搜索論壇基本
知道這個(gè)問(wèn)題已經(jīng)得到了解決.
下面的文章引導(dǎo)我朝著正確的方向前進(jìn)了一大步(非常感謝該文作者):GlassFish Auto Deployment and Hot Deployment
關(guān)于目錄部署的詳細(xì)說(shuō)明,參見(jiàn):
Sun Java System Application Server Platform Edition 9.0 Application Deployment Guide
Chapter 1 中 Deployment for Development 一節(jié)
7. GlassFish v2 的目錄部署實(shí)戰(zhàn)
第1步: 啟動(dòng) GlassFish v2.
第2步: 部署 Sample 項(xiàng)目到 GlassFish v2, DOS窗口下執(zhí)行命令:
GLASS_FISH_HOME/bin/asadmin deploydir D:/Sample
其中 GLASS_FISH_HOME 是 GlassFish 的安裝目錄, 命令執(zhí)行完畢后,可以看到成功部署信息.
8. 體驗(yàn) GlassFish v2 的熱部署特性
第1步: 修改 index.jsp 文件內(nèi)容, 保存后, 刷新瀏覽器, 你就能馬上看到新的內(nèi)容.
第2步: 修改 SampleServlet.java, 保存后, 等待片刻, Eclipse 已經(jīng)自動(dòng)編譯這個(gè)類(lèi), 但 GlassFish v2 控制臺(tái)中沒(méi)有任何提示, 刷新瀏覽器, 看不到新的內(nèi)容.
第3步: 現(xiàn)在, 在 Sample 項(xiàng)目根目錄中創(chuàng)建文件名為".reload"的文件(內(nèi)容為空).
第4步: 觀察GlassFish v2 控制臺(tái), 可以看到重新加載信息,刷新瀏覽器,看到了新的內(nèi)容.
第5步: 再次修改 SampleServlet.java 的內(nèi)容, 保存后, 遇到和第2步同樣的問(wèn)題.
第6步: 再次打開(kāi) .reload 文件, 輸入任意內(nèi)容, 然后保存.
第7步: 再次出現(xiàn)與第4步同樣的效果.
總結(jié)上述操作, GlassFish v2 對(duì)于非Java類(lèi)的加載, 達(dá)到了和Tomcat同樣的效果, 但Java類(lèi)的加載, 需要通過(guò) .reload 文件的時(shí)間戳來(lái)控制. 這種做法對(duì)開(kāi)發(fā)有好處, 在調(diào)試改錯(cuò)時(shí), 可以修改多個(gè) Java 類(lèi)文件, 然后讓 GlassFish v2 一次加載全部修過(guò)的類(lèi).
9. 自動(dòng)化 .reload 文件時(shí)間戳刷新
上一節(jié)中, 手工打開(kāi) .reload 文件, 通過(guò)修改其內(nèi)容刷新其時(shí)間戳, 這種做法太麻煩.
在 unix/linux 平臺(tái)下, 通過(guò)命令 touch 刷新 .reload 文件的時(shí)間戳. 在 Window 平臺(tái), 也有人實(shí)現(xiàn)了 touch. 我在 CodeProject 網(wǎng)站找到一個(gè) touch.exe: Touch for Windows - The Code Project - Free Tools,很好用, 并且可以集成到 Eclipse 的工具條按鈕中來(lái)執(zhí)行 touch 命令(touch.exe 已經(jīng)包括在附件中).
第1步: 拷貝下載的 touch.exe 到 Sample 項(xiàng)目根目錄.
第2步: 在 Eclipse 下, 選擇 Run > External Tools > Open External Tools Dialog.
第3步: 選中左側(cè) Program 節(jié)點(diǎn), 右擊, 選擇New菜單項(xiàng).
第4步: 在右側(cè)出現(xiàn)的對(duì)話框中, 填入下面的內(nèi)容
Name: SampleTouch
Main[頁(yè)面]
Localtion: ${workspace_loc:/Sample/touch.exe}
Working Directory: ${workspace_loc:/Sample}
Arguments: .reload
Common[頁(yè)面]
Display in favorites menu: 選中External Tools
保存后, 你可以在Eclipse的Run工具條按鈕中看到新創(chuàng)建的項(xiàng).
10. GlassFish替換Tomcat結(jié)語(yǔ)
用 GlassFish v2 可以完全替換 Tomcat 5.x, 在開(kāi)發(fā)中它保留了 Tomcat 好的特性的。同時(shí),給我們帶來(lái)了強(qiáng)壯的熱部署功能, 顯著地提高了開(kāi)發(fā)效率.
【編輯推薦】
- Sun發(fā)布基于GlassFish的開(kāi)源網(wǎng)絡(luò)平臺(tái)
- GlassFish配置多機(jī)集群淺析
- 如何將GlassFish作為Windows服務(wù)運(yùn)行
- 在Glassfish上部署web應(yīng)用
- GlassFish的下載及安裝
文章名稱(chēng):GlassFish替換Tomcat
網(wǎng)站URL:http://fisionsoft.com.cn/article/dpcehji.html


咨詢
建站咨詢
