本文介紹如何在Glassfish上部署web應用。
一,開發工具的選擇
Java EE,或者是JSF應用開發,Netbeans和Glassfish是最好的搭配選擇,前者對於後者有非常好的支持。但要注意netbeans的版本,5.5是不支持glassfish v2的。而netbeans6還很不穩定,所以現階段最好的版本是netbeans5.5.1。
關於Netbeans下開發Java EE應用,官方有文檔介紹:Java EE 應用程序相關教程,這裡主要介紹一下生產環境中web應用在glassfish下的部署和配置
二,下載安裝Glassfish V2
1)下載Glassfish v2並解壓縮。下載完畢後,執行以下命令:
java -Xmx256m -jar glassfish_filename.jar
點擊接受彈出的協議後(這裡sun比較無聊啊,所有軟件都是,明明一個普通壓縮包,非壓成jar讓你看一下協議才行),glassfish會解壓到一個名為glassfish的目錄裡。
2) 修改端口
glassfish是通過ant來安裝的,安裝腳本在setup.xml下,在裡面可以修改一些配置,比如端口等等。在setup.xml中主要有以下設置:
xml 代碼
﹤property name="domain.name" value="domain1"/﹥ 域名
﹤property name="instance.name" value="server"/﹥
﹤property name="admin.user" value="admin"/﹥ 管理員用戶名
﹤property name="admin.password" value="adminadmin"/﹥ 管理員密碼
﹤property name="admin.port" value="4848"/﹥ 管理平台端口
﹤property name="instance.port" value="8080"/﹥ 實例端口,也就是通過這個端口來訪問web應用
﹤property name="orb.port" value="3700"/﹥
﹤property name="imq.port" value="7676"/﹥
﹤property name="https.port" value="8181"/﹥ https端口
根據需要修改以上設置,執行:ant -f setup.xml,如果系統沒有安裝ant,在glassfish\lib\ant下有一個ant1.6版。安裝結束後,進入glassfish/bin下,在控制台執行下面命令啟動glassfish:
asadmin start-domain domain1 // domain1是上面設置的domain.name,系統默認domain1
啟動結束後,進入http://localhost:8080測試是否已經正確啟動
asadmin stop-domain domain1 //停止服務器
三,部署web應用
有三種方式,可以直接將war或ear放在glassfish/domain/autodeploy目錄下,glassfish啟動後會自動部署。第二是通過命令asadmin deploy部署應用, 另外 asadmin updeploy 卸載應用。通過asadmin deploy --help 和 asadmin undeploy --help 獲得更多幫助。
第三是通過我推薦的方式,通過glassfish管理控制台進入http://localhost:4848,默認用戶admin,密碼adminadmin。打開後看到如下界面:
進入左側菜單, Applications -> Web Applications,在列表中可以看到已經部署的應用,如要部署新應用,點擊deploy按鈕,選擇本地的war,設定好context path,點擊OK,無論部署成功或失敗,都會看到相應的信息提示
注:通過這種方式,可以進行遠程部署,只要打開目標服務器上的管理控制台,選擇一個本地的war,就可以快速的部署到遠程服務器上,非常方便,這也是推薦的原因。對於EJB應用,在Enterprise Applications下部署,方法同上
四,配置jdbc數據源
對於Java EE應用,經常需要事先設定數據源,否則部署時會報javax.naming.NameNotFoundException
配置方法是進入Resources -> JDBC,會看到JDBC Resources和Connection pools
先設定Connection pools,以MySql為例,點擊New,命名為MySqlPools,ResourceType選擇javax.sql.ConnectionPoolDataSource,Database vendor肯定選擇mysql,然後點擊next進入下一頁面。最主要的是設定Additional Properties,也就是jdbc連接配置,設定好url, user, password,其他的保持默認值,也可以根據需要自己添加屬性。設定好連接池後,接著設定JDBC Resources,新建一個JDBC,名稱要和你的web應用裡的持久化單元采用的數據源的名稱一致。
然後再次部署web應用,就會正常運行了。