Glassfish初探
Glassfish是sun主導(dǎo)的一款開(kāi)源J2EEweb服務(wù)器,具體情況請(qǐng)?jiān)L問(wèn)https://Glassfish.dev.java.net
本文重點(diǎn)介紹如何安裝Glassfish,運(yùn)行Glassfish,以及部署web應(yīng)用程序到Glassfish中,最后還專注于在Glassfish中使用Oracle的數(shù)據(jù)源。
1、安裝與運(yùn)行(Windows的安裝,其他暫時(shí)沒(méi)有做)
前提:需要安裝JDK1.5,在此不累述
首先,在https://Glassfish.dev.java.net上下載Glassfish,一般有兩個(gè)版本,一個(gè)是標(biāo)準(zhǔn)版,一個(gè)是多語(yǔ)言版,根據(jù)你的實(shí)際需要,下載相應(yīng)版本。
其次,將下載下來(lái)的jar包放置在一個(gè)想要安裝的位置,如D盤根目錄下,在命令行模式下運(yùn)行到j(luò)ar包的所在目錄,運(yùn)行命令:java-Xmx256m-jarfilename.jar(注:filename.jar為Glassfish-**-**-**.jar包),一會(huì)兒會(huì)彈出一個(gè)對(duì)話框,這個(gè)時(shí)候可能要拖動(dòng)一下上面的說(shuō)明,表示你已經(jīng)知道了(也許是過(guò)陣子時(shí)間),accept按鈕允許點(diǎn)擊,之后就會(huì)開(kāi)始安裝在jar包所在目錄下。
再次,安裝完之后,還需要在Glassfish中添加domain,就如同websphere要加appserver一樣,在Glassfish的根目錄下,有一個(gè)setup.xml,打開(kāi)該文件,編輯重要信息:
- <propertynamepropertyname="domain.name"value="domain1"/><!--域名稱,默認(rèn)為domain1-->
- <propertynamepropertyname="admin.user"value="admin"/><!--控制管理臺(tái)用戶-->
- <propertynamepropertyname="admin.password"value="adminadmin"/><!--控制管理臺(tái)用戶密碼-->
- <propertynamepropertyname="admin.port"value="4848"/><!--控制管理臺(tái)http端口-->
- <propertynamepropertyname="instance.port"value="8080"/><!--web應(yīng)用http端口-->
- <propertynamepropertyname="https.port"value="8181"/><!--web應(yīng)用https端口-->
根據(jù)各自機(jī)器的實(shí)際情況進(jìn)行設(shè)置,或不做改動(dòng),完了,需使用ant來(lái)生成domain,如機(jī)器上沒(méi)有安裝ant,可使用Glassfish自帶的ant來(lái)進(jìn)行安裝(%{Glassfish}\lib\ant),執(zhí)行命令:ant-fsetup.xml(如使用Glassfish自帶的ant,則lib\bin\ant-fsetup.xml),仔細(xì)查看執(zhí)行過(guò)程是否安裝成功,本人在安裝時(shí),就因?yàn)槎丝谠O(shè)置沖突而安裝失敗,但是build的結(jié)果為successful,所以得注意安裝過(guò)程中出現(xiàn)的文字信息,成功后,會(huì)在Glassfish的根目錄下出現(xiàn)個(gè)domains的目錄
到此,安裝已經(jīng)完成,要啟動(dòng)domain1,可以如下操作,命令行到Glassfish的bin目錄下,執(zhí)行:asadminstart-domaindomain1(domain1為域名稱),停止則為asadminstop-domaindomain1
2、部署WEB應(yīng)用程序
前提:有一個(gè)完整WEB項(xiàng)目的war包,打包方式為jarcvf***.war./
啟動(dòng)Glassfish之后,進(jìn)入到某個(gè)域的后臺(tái)管理頁(yè)面,輸入用戶名和密碼,進(jìn)入主頁(yè)。
左欄會(huì)有一些任務(wù)欄,應(yīng)用程序->web應(yīng)用程序->部署,選擇需要部署的war文件,輸入應(yīng)用程序名稱以及上下文根,選擇好war包時(shí),會(huì)默認(rèn)將包名設(shè)置為這兩個(gè)輸入項(xiàng),可自行更改,如果需要web項(xiàng)目運(yùn)行在根目錄下,直接在上下文根輸入/即可,其他選項(xiàng)默認(rèn)即可,點(diǎn)擊確定,如果失敗,則會(huì)提示錯(cuò)誤保存在日志文件中,這個(gè)時(shí)候需要到domain的logs中自行查找錯(cuò)誤原因。
部署成功后,即可訪問(wèn)該web應(yīng)用程序了,可點(diǎn)擊web應(yīng)用程序的取消部署刪除該web應(yīng)用,也可以停止該web應(yīng)用,啟用該web應(yīng)用。
3、數(shù)據(jù)源
這個(gè)地方花費(fèi)了我好一陣時(shí)間
前提:已經(jīng)安裝Oracle(其他應(yīng)該類似,但是沒(méi)有用過(guò),不敢保證),并有相應(yīng)的數(shù)據(jù)庫(kù),用戶名和密碼等
登錄某個(gè)域的后臺(tái)管理頁(yè)面
左欄,資源->JDBC->連接池->新建,輸入連接池名稱,選擇類型為javax.sql.ConnectionPoolDataSource,數(shù)據(jù)庫(kù)供應(yīng)商選擇Oracle,下一步,上面的輸入都可以使用默認(rèn)設(shè)置,在其他屬性中,輸入以下各個(gè)屬性的對(duì)應(yīng)值:
DatabaseName(數(shù)據(jù)庫(kù)名)
User(數(shù)據(jù)庫(kù)用戶名)
Password(數(shù)據(jù)庫(kù)用戶密碼)
PortNumber(數(shù)據(jù)庫(kù)端口,Oracle的端口默認(rèn)為1521)
URL(數(shù)據(jù)庫(kù)訪問(wèn)的地址,如jdbc:Oracle:thin:@localhost:1521:db)
其他可以不用設(shè)置,完成,即生產(chǎn)一個(gè)連接池
然后,將Oracle的數(shù)據(jù)庫(kù)訪問(wèn)jar包復(fù)制到domain\lib\ext下來(lái)到新創(chuàng)建的連接池的內(nèi)容顯示頁(yè),點(diǎn)擊ping,如果ping成功,則連接池已經(jīng)設(shè)置成功,否則依次排查故障,接下來(lái)就要設(shè)置數(shù)據(jù)源。
資源->JDBC->JDBC資源,輸入JNDI名稱,一般為jdbc/****(*為具體名稱),選擇池名稱為剛剛新建的連接池,點(diǎn)擊確定,即可創(chuàng)建完之后,需要在web程序中使用,需要在web.xml中加入:
- <resource-ref>
- <description>OracleConnectionPool</description>
- <res-ref-name>jdbc/****</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- <res-sharing-scope>Shareable</res-sharing-scope>
- </resource-ref>
然后在java程序中,加入如下代碼來(lái)使用數(shù)據(jù)源:
- Contextctx=newInitialContext();
- DataSourceds=(DataSource)ctx.lookup("jdbc/****");
- Connctioncon=ds.getConnection();
接下來(lái)就簡(jiǎn)單,直接用這個(gè)con就可以了。
時(shí)間倉(cāng)促,而且還是剛剛接觸,Glassfish的其他內(nèi)容還未能涉及,拋磚引玉吧
【編輯推薦】