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