| hasek | 2005-12-07 14:35 |
| 早幾天下載了下jboss的最新版本4.03sp1(http://www.jboss.com/),感覺(jué)還不錯,順便根據提供的 《Getting Started with JBoss 4.0》指南,部署了下duke’s bank 銀行例子,感受下用j2ee部署一個(gè)完整應用的經(jīng)歷,對于想步入j2ee的初學(xué)者而言,感受下這種經(jīng)歷是有幫助,此次實(shí)例的應用不涉及j2ee代碼編寫(xiě),不過(guò)可以給初學(xué)者對j2ee部署有個(gè)感性的認識。 準備工作: jdk肯定是必須先有的啊,最好設置好Java_home變量 1.jboss4.03sp3應用服務(wù)器(http://www.jboss.com/)下載 2.j2ee-1_4-doc-tutorial_2.zip(http://www.sun.com/)具體地方大家主動(dòng)搜索吧;-)關(guān)鍵點(diǎn):一定要是這個(gè)版本的tutorial,要不然部署就不會(huì )成功 3.jbossj2ee-src.zip(這個(gè)比較難找,我提高網(wǎng)址給大家) http://wiki.jboss.org/wiki/attach?page=ClusteringDemoUsingDukesBankJ2EE1.4%2Fjbossj2ee-src.zip 4.ant軟件(http://www.apache.org/)自己在那個(gè)網(wǎng)站上下載吧,不提供現成的給大家,免得你們太依賴(lài)了;-)最新版本的是1.65的,解壓就ok了,為了方便,在環(huán)境變量里面設置好path。 開(kāi)始步驟 1、 將j2ee-1_4-doc-tutorial_2.zip解壓,出現j2eetutorial14 目 錄,所有的Duke 銀行應用代碼位于examples/bank子目錄中。然后正常解壓jbossj2ee-src.zip,注意解壓到j(luò )2eetutorial14目錄下,出現覆蓋提示時(shí) 不用管它,選擇是就可以了,然后用戶(hù)將在這個(gè)目錄下看到一個(gè)看到j(luò )boss-build.properties文件。在構建Duke 銀行應用之前,用戶(hù)需要設置如下信息。即,編輯j2eetutorial14 目錄中的 jboss-build.properties 文件,以定位JBoss 4.0.2 的安裝目錄。其中,需要將jboss.home 屬性定位到JBoss 4.0.2 安裝的完整路徑。則用戶(hù)需要設置如下信息。(藍色部分修改為你們jboss服務(wù)器安裝路徑) QUOTE: # Set the path to the JBoss directory containing the JBoss application server # (This is the one containing directories like "bin", "client" etc.) jboss.home=E:/Program Files/jboss-4.0.3SP1(此處特別小心,斜杠一定是這樣打才行哦,用 \ 這個(gè)斜杠 ant的時(shí)候出現問(wèn)題)jboss.server=${jboss.home}/server/default jboss.deploy.dir=${jboss.server}/deploy 2、 編譯Java 源文件 打開(kāi)命令行,然后轉到j(luò )2eetutorial14/exampe/bank 目錄。所有的Ant 構建命令都是在此執行的。編譯工作非 常直觀(guān),即敲入如下命令,以調用compile 目標。 QUOTE: ant -f jboss-build.xml compile 如果沒(méi)有出現錯誤,則用戶(hù)將發(fā)現新創(chuàng )建的build 目錄,其中包含了.class 文件。 3、打包EJB 該應用含有一EJB jar,即bank-ejb.jar。bank-ejb.jar 含有代碼和描述符(ejb-jar.xml 和 jboss.xml),以用于實(shí)體Bean 和與客戶(hù)交互的控制會(huì )話(huà)Bean。Ant 目標package-ejb 將會(huì )把 創(chuàng )建的bank-ejb.jar 存放到j(luò )ar 目錄。 QUOTE: ant -f jboss-build.xml package-ejb 4、 打包WAR 文件 下個(gè)Ant 目標是提供前端支持的Web 應用,從而實(shí)現用戶(hù)與業(yè)務(wù)組件(EJB)的交互。 其中,src/web 目錄含有的Web 資源(JSP、圖片、等等)原封不動(dòng)地添加到存檔中。Ant war 任務(wù)也能夠添加WEB-INF 目錄,Web 瀏覽器并不能直接與該目錄中的內容進(jìn)行交互,但是 其內容是Web 應用的組成部分。Web 應用具體包含的內容有部署描述符(web.xml 和 jboss-web.xml)、類(lèi)文件(比如,Servlet 和EJB 接口)、其他WAR 要求的庫和JSP 標簽庫描 述符。Ant 目標package-web 能夠構建Web 客戶(hù),即WAR 文件。 QUOTE: ant -f jboss-build.xml package-web 5、 打包Java 客戶(hù) 除了Web 界面外,還存在單獨運行的Java 客戶(hù)應用,用于管理顧客和賬號。使用Ant 目標package-client 如下: QUOTE: ant -f jboss-build.xml package-client 其生成的app-client.jar 文件含有application-client.xml 和jboss-client.xml 描述符。另外, 還包括jndi.properties 文件。同時(shí),客戶(hù)JAR 文件也將包含在EAR 文件中,以作為附加的 模塊。 6、集成EAR EAR 文件是完整的應用,即含有3 個(gè)EJB 模塊和1 個(gè)Web 模塊。而且,它還必須包含 application.xml 描述符。當然,可以單獨部署EJB 和Web 應用模塊,但是EAR 提供了單一 的、便于操作的部署單元。Ant 目標assemble-app 將創(chuàng )建JBossDukesBank.ear。 QUOTE: ant -f jboss-build.xml assemble-app 7、數據庫 在部署應用之前,用戶(hù)需要完成其數據庫配置。如果應用中使用了CMP,則可以通過(guò) 配置CMP 引擎,使得在部署時(shí)自動(dòng)創(chuàng )建表。否則,用戶(hù)需要創(chuàng )建SQL 腳本。對于存在初始 化數據的DB 而言,手工創(chuàng )建表也是較好的辦法。 7.1、 啟用HSQL MBean 和TCP/IP 連接 HSQL 數據庫能夠以如下兩種方式運行:進(jìn)程內或客戶(hù)-服務(wù)器(HSQL 文檔稱(chēng)之為,服 務(wù)器模式)。由于用戶(hù)需要使用能夠連接到DB 的工具,以運行SQL 腳本,因此必須保證數 據庫以客戶(hù)-服務(wù)器模式運行,并能接受TCP/IP 連接請求。默認時(shí),最新的JBoss 發(fā)布版將 客戶(hù)-服務(wù)器模式禁用了,這主要考慮到安全性要素,因為如果默認登陸賬號沒(méi)有修改將導 致安全性問(wèn)題。因此,用戶(hù)需要打開(kāi)設置了默認數據源的deploy/hsqldb-ds.xml 文件。在文 件的開(kāi)始部分,能夠看到connection-url 元素。其取值必須是 QUOTE: jdbc:hsqldb:hsql://localhost:1701, 而且其他connection-url 元素值必須注釋掉。 <!-- The jndi name of the DataSource, it is prefixed with java:/ --> <!-- Datasources are not available outside the virtual machine --> <jndi-name>DefaultDS</jndi-name> <!-- for tcp connection, allowing other processes to use the hsqldb database. This requires the org.jboss.jdbc.HypersonicDatabase mbean. --> <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url> <!-- for totally in-memory db, not saved when jboss stops. The org.jboss.jdbc.HypersonicDatabase mbean is unnecessary <connection-url>jdbc:hsqldb:.</connection-url> --> <!-- for in-process db with file store, saved when jboss stops. The org.jboss.jdbc.HypersonicDatabase is unnecessary <connection-url>jdbc:hsqldb:${jboss.server.data.dir}/hypersonic/localDB </connection-url> --> 然后,定位到文件的底端部分,用戶(hù)應該可以找到Hypersonic 服務(wù)的MBean 聲明。 <mbean code="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=Hypersonic"> <attribute name="Port">1701</attribute> <attribute name="Silent">true</attribute> <attribute name="Database">default</attribute> <attribute name="Trace">false</attribute> <attribute name="No_system_exit">true</attribute> </mbean> 用戶(hù)必須確保,這部分內容沒(méi)有被注釋掉,因此JBoss 才能夠正確地啟動(dòng)DB 7.2、 創(chuàng )建數據庫模式 用戶(hù)通過(guò)sql 目錄能夠找到適合HSQL 的SQL 腳本。其中,jboss-build.xml 中的數據庫 任務(wù)能夠同HSQL 數據庫進(jìn)行交互。如果還未運行JBoss,則請立即啟動(dòng)它吧,這樣才能使 用數據庫。 首先,可以使用Ant 目標db-create-table 創(chuàng )建所需的表。 QUOTE: ant -f jboss-build.xml db-create-table 然后,運行db-insert 目標,以初始化所需的數據。 QUOTE: ant -f jboss-build.xml db-insert 最后,如果上述過(guò)程很順利,則使用Ant 目標db-list 能夠瀏覽到部分數據。其中,db-list 目標列舉出了某特定賬號的交易信息。 QUOTE: ant -f jboss-build.xml db-list 7.3 HSQL 數據庫管理工具 另外,如果用戶(hù)啟動(dòng)JMX 控制臺Web 應用,能夠在域名jboss 下看到service=Hypersonic 鏈接。 通過(guò)單擊上述鏈接,用戶(hù)能夠使用到Hypersonic MBean 服務(wù)提供的HSQL 數據庫管理 功能。具體步驟如下:將屏幕滾動(dòng)到頁(yè)面底端,然后單擊用于startDatabaseManager()操作的 invoke 按鈕,進(jìn)而啟動(dòng)了HSQL 管理器,即用戶(hù)能夠直接操作數據庫的、基于圖形用戶(hù)界 面的Java 應用。 8、部署應用 部署基于JBoss 的應用很簡(jiǎn)單,用戶(hù)只需要將EAR 文件拷貝到deploy 目錄即可。通過(guò) Ant 目標deploy 能夠完成應用的部署工作。 QUOTE: ant -f jboss-build.xml deploy 如下給出了示例(作了部分裁減,而且同用戶(hù)所看到的實(shí)際輸出會(huì )有所差別)。 QUOTE: 18:07:55,024 INFO [EjbModule] Deploying CustomerBean 18:07:55,103 INFO [EjbModule] Deploying AccountBean 18:07:55,142 INFO [EjbModule] Deploying TxBean 18:07:55,403 INFO [EjbModule] Deploying NextIdBean 18:07:55,439 INFO [EjbModule] Deploying AccountControllerBean 18:07:55,478 INFO [EjbModule] Deploying CustomerControllerBean 18:07:55,503 INFO [EjbModule] Deploying TxControllerBean 18:07:56,950 INFO [EJBDeployer] Deployed: file:/private/tmp/jboss-4.0.2/server/default/t mp/deploy/tmp15097JBossDukesBank.ear-contents/bank-ejb.jar 18:07:57,267 INFO [TomcatDeployer] deploy, ctxPath=/bank, warUrl=file:/private/tmp/jboss -4.0.2/server/default/tmp/deploy/tmp15097JBossDukesBank.ear-contents/web-client.war/ 18:08:00,784 INFO [EARDeployer] Started J2EE application: file:/private/tmp/jboss-4.0.2/ server/default/deploy/JBossDukesBank.ear 如果存在錯誤或異常信息,則請注意錯誤信息,并確認導致錯誤的原因(比如,部署某 特定EJB 時(shí),或Web 應用等等)。請檢查EAR、WAR、EJB jar 文件的完整性,比如所有所 需的組件(類(lèi)、部署描述符等等)是否都存在。 如果應用已經(jīng)部署,則用戶(hù)可以放心地再次部署它。如果需要卸載應用,則只需要將相 應的存檔從deploy 目錄刪除即可。當然,JBoss 服務(wù)器始終不需要重啟。如果一切都正常, 并無(wú)異常拋出,則通過(guò)Web 瀏覽器打開(kāi)如下URL: http://localhost:8080/bank/main [attachment=408] | |
| ||||
| ||||
| ||||
聯(lián)系客服