PETSTORE原始碼追蹤記 歐亘修 enshawla Dms hinet. net 前言 J2EE是一個完整的分散式企業級應用架構’相信許多人都聽過這個名詞 可是不曉得裡面有什麼東西’在 Sun java網站上提供了一個把JEE所有技術融 合應用在一個系統’提供給想要應用JEE架構的人一個參考範例,這個範例系 統就是 Petstore(其實在 Sun java網站還有另一個範例系統- Smart Ticket·不過筆 者尙沒時間硏究)由於題目訂爲記蹤記’所以筆者是用一倏軌跡方式敘迒’碰 到問題’再跳開敘迒ν完後再跳回來’可能讀趄來會比較沒俫理’但是比較容易 串連各元件的關倸。筆者假設讀者已對JEE相關技術已有相當了解·所以對 Petstore使用到的技術並沒有多加說明,讀者若有看不懂的技術名詞,請自行參 閱相關書籍丶文件。 流程描逃 Pet Store Web site Credit Card Service Custo Fulfillment Center A
PETSTORE 原始碼追蹤記 歐亘修 senshaw@ms4.hinet.net 前言: J2EE 是一個完整的分散式企業級應用架構,相信許多人都聽過這個名詞, 可是不曉得裡面有什麼東西,在 Sun Java 網站上提供了一個把 J2EE 所有技術融 合應用在一個系統,提供給想要應用 J2EE 架構的人一個參考範例,這個範例系 統就是 Petstore(其實在 Sun Java 網站還有另一個範例系統-Smart Ticket,不過筆 者尚沒時間研究),由於題目訂為記蹤記,所以筆者是用一條軌跡方式敘述,碰 到問題,再跳開敘述,完後再跳回來,可能讀起來會比較沒條理,但是比較容易 串連各元件的關係。筆者假設讀者已對 J2EE 相關技術已有相當了解,所以對 Petstore 使用到的技術並沒有多加說明,讀者若有看不懂的技術名詞,請自行參 閱相關書籍、文件。 流程描述:
上圖就是 Petstore所霈運作流程·從最左邊客戶開始’客戶會透過網頁( Pet store Web Site)去選擇他喜歡的寵物’下單購買’訂單會進到訂單處理中( Order Fulfillemnt Center),訂單處理中心會透過銀行( Credit Card Service)檢查他的信用 卡資料’網站管理者可透過後端管理介面( Admin gu·去管理所有客戶訂單資 料’最後由倉庫取岀庫存寵物’經過包裝’運荙至客戶手裡’這是一個很典型的 購物網站 安裝 Petstore詳細的安裝步驟已寫在 Petstore安裝目錄 A\ lindex. html,筆者僅列岀關 鍵部份。 1安裝JDK 請安裝JDK1.3.1_03,可至下列網址下載 http:/java.sun.com/downloads.html 2.安裝J2EE 在 Browser上輸入下列網址 httpiavasuncom/downloads.html 2Downbads Home. Microsoft Intemet Explorer 榷案⑨横辑①檢峴⑦我的最愛()工具①說明田 中上一真·+④的a搜我的最爱會媒④·a目 剩址①面 →移至連結 APIs Help Test our new Search Tutorials plications in the Java programming language, Also cludes Java Development Kit release 1. 1 and Java Powered by Google untime Environment 1. 1 Web st Full J2SE Platform List Useful Links A-Z Index Java 2 platform, Enterprise Edition (2EE) Developer Services Bug Database ith a comprehensive Application Programming Mod Forums and Compatibility Test Suite for building enterprise-class What is Java 27Where's the jDK? support rver-side applications. J2EE SDK1.3.1 Related Sun Sites Java 2 platform, Micro Edition(J2MEM) Java Community process ntime environment targeting a wide Sun Community Source ange of consumer products, including p. cellula phones, screenphones, digital set-top boxes and car avigation systems. Full J2ME Product List Changing Technologies ForteTM Fusion Java Blend Technology」 選擇下載J2 EE SDK1.3.1·下載完成後’執行j2sdke-1_3_l- win. exe進行安 裝,安裝過程非常直覺’一直按ˆNext'鍵即可
上圖就是 Petstore 所需運作流程,從最左邊客戶開始,客戶會透過網頁(Pet Store Web Site)去選擇他喜歡的寵物,下單購買,訂單會進到訂單處理中心(Order Fulfillemnt Center),訂單處理中心會透過銀行(Credit Card Service)檢查他的信用 卡資料,網站管理者可透過後端管理介面(Admin GUI),去管理所有客戶訂單資 料,最後由倉庫取出庫存寵物,經過包裝,運送至客戶手裡,這是一個很典型的 購物網站。 安裝 Petstore 詳細的安裝步驟已寫在 Petstore 安裝目錄\docs\index.html,筆者僅列出關 鍵部份。 1.安裝 JDK 請安裝 JDK1.3.1_03,可至下列網址下載: http://java.sun.com/downloads.html 2.安裝 J2EE 在 Browser 上輸入下列網址: http://java.sun.com/downloads.html 選擇下載 J2EE SDK 1.3.1,下載完成後,執行 j2sdkee-1_3_1-win.exe 進行安 裝,安裝過程非常直覺,一直按”Next”鍵即可
3安裝 Java Web Services Developer Pack 下載網址htp/liava.sun.com/webservices,/downloads/webservicespack 這個部份是 Petstore 13.1新增加的功能’讀者可不安裝’筆者覺得既然要學 東西’還是學完整比較好 4安裝完成後請設定環境變數 JAVA HOME:JDK安裝目錄(ex:C:jdkl.3.103) J2 EE HOME:J2EE安裝目錄(exC:j2 sdkeel.3.l) JWSDP HOME: JWSDP安裝目錄(ex:C: Jwsdp-l0) Path:加上J2EE安裝目錄bin(ex:% J2EE HOME%bin) 在 Windows2000上選擇ˆ開始ˆ>ˆ控制台ˆ>系統ˆν進階”’點選ˆ環境變數” 鍵 系统内容 ? x 一般網激別|硬體|使用者設定檔進一 效能 貟控制應用程式的記憶體使用’這會影誓到您 效能選項① 環境费 環境甓數]告訴電腦某些類型資訊的位置。 氯境愛數E 啓動及修復 [動及修復逢項 错謨镶電脂停止時 鹿如的的”有如果生 瞽動及修復③ 匚確定取消用 建立如下環境變數
3.安裝 Java Web Services Developer Pack 下載網址 http://java.sun.com/webservices/downloads/webservicespack 這個部份是 Petstore1.3.1 新增加的功能,讀者可不安裝,筆者覺得既然要學 東西,還是學完整比較好。 4.安裝完成後請設定環境變數: JAVA_HOME:JDK 安裝目錄(ex: C:\jdk1.3.1_03) J2EE_HOME:J2EE 安裝目錄(ex:C:\j2sdkee1.3.1) JWSDP_HOME:JWSDP 安裝目錄(ex: C:\jwsdp-1_0) Path:加上 J2EE 安裝目錄\bin(ex:%J2EE_HOME%\bin) 在 Windows2000 上選擇”開始”>”控制台”>”系統”>”進階”,點選”環境變數” 鍵 建立如下環境變數:
環境数 ? renshaw的使用者数① 「值 JCL ASS HOME C: Class50K C: INFORMIX BIN C j2sdkee 13.1\bim C: Documents and Settings henshaw SSN C: Documents and Settings henshaw SSN TMPDIR C: DOCUME-1SENSHA.1.SSNLOCA. 新增③」编刪除⑩」 系統蜓数 C: Sybase \LIB NUMBER OF P. 1 NUT SUFFIXED. 1 新(四D」辑①」刪除① 匚確定取消 輯系統数 數名箱Q: AVA HOME 数值① C地dk313 匚確定取消」 輯系统慢數 数名稱QD: J2EE_HOME 數值① C:32sdkee1 3.1 確定取消 編輜使用者驶数 ?×」 健敷名稱c 數值① F INFORMIX BIN; %2EE_HOME%bin D: 確定取消
局輯系統数 變数名稱Q JWSDP HOME 鳗數值 ojwsdp-1_0 確定 取消 Windows XP設定方式應差不多,其他作業設定請參考J2EE說明檔。 5安裝 Petstore 在瀏覽器上輸入下列網址 http:/java.sun.com/blueprints/code/index.html Deve 植案①蕲①檢①我的最爱()工具①T說明田 中上真·+·的益搜我的最爱會媒橙④,⑧, 钢址①数理愿 ◇移至連结 Java m blue Prints for enld--. ntd jra applicatiens Search About Feed Developer Services Code Enterprise: Java Pet Store Sample Application shows how to use the capabilities of the J2EETH platform to de Web services The latest version of the Java Pet store Sample Application --v1.3. 1--add enhancements that support the development of Web services (NOTE: Japanese localized versions of the Java Pet Store sample application, v1.3.1 and arly Access Version 1.3.1: NEw( For J2EE SDK I.3.1)Download I Browsable Source I AF (FOr J2EE SDK 1.2.1) Version 1.1.2: Download I Browsable Source I API Documentation I Data Sheet 日本版板目次 Application Overview ersion 1.0.1: Download I Browsable Source I API Documentation I Application Overvie 目前 Petstore最新版本是13.1,最新版本主要是加入了 Web service應用, 讀者請點選Doυ onload下載’下載完成後將 petstore-_3_1.zip解開,會得到以下 目錄
WindowsXP 設定方式應差不多,其他作業設定請參考 J2EE 說明檔。 5.安裝 Petstore 在瀏覽器上輸入下列網址: http://java.sun.com/blueprints/code/index.html 目前 Petstore 最新版本是 1.3.1,最新版本主要是加入了 Web Service 應用, 讀者請點選 Download 下載,下載完成後將 petstore-1_3_1.zip 解開,會得到以下 目錄:
榕案①辑巴檢①我的最爱)工具①說明 中上一真,+·③搜料④X2 址①Dvsm131 移至M0mAB如品 育料夹 郾名科 大小類型△修改日期 □貍項及未整理交件 Al docs 榕案資料.200711上午1046 71上午1046 CProgram M]opc.ea 173 KB EAR案2002624下午021 petstore ear 1,244 KB EAR蓿案22624下午0216 20026524下午 图 suppler.ear 220 KB EAR蓿案2002624下午 -setup. e 3 KB MS-D0s.2002624下午02:16 a bmcat323 16 KB XML Doc..2002624下午02:16 bpmcat404 WINAMP-MP3放程式 A]IMAGE_COPYRI 20020624下午02 E-C WINNT ALICENSE 10KB家 2002624下午02:16 白本機疏碟①D) 期型榴 大小934KB 13個物件磷可用空間:652MB) B回我的電腦 請開啓命合提示字元(即DOS親窗)·切換至 JWSDP目錄 ex:cd c: Wsdp -1 O\bin 之後鍵入 jwsdponj2ee. bat %J2EE HOME% Jwsdp會對J2ee的RlI( Reference Implementation)做若干設定筆者發 現原本 RI Web Service Port由80008080:在J2ee目錄 Niblsystem多 了 endorsed目錄,整個過程需要一些時間
請開啟命令提示字元(即 DOS 視窗),切換至 JWSDP 目錄 ex: cd c:\jwsdp-1_0\bin 之後鍵入 jwsdponj2ee.bat %J2EE_HOME% Jwsdp 會對 J2ee 的 RI(Reference Implementation)做若干設定,筆者發 現原本 RI Web Service Port 由 8000 變為 8080;在 J2ee 目錄\lib\system 多 了 endorsed 目錄,整個過程需要一些時間…
榕案①辑巴檢①我的最爱)工具①說明 中上一真·→·国搜凸资料3×2 址①C2k!31 hib'ystemendorsed 移至取会四 育料夹 小型修政日期 圃动p3,139 KB Executabl.20275下午094 白 Documents and setting □] fornix □dk14001 cloudscape onnector L cloudscape Endorsed 類型!: Executable Jar file大小:306MB 306MB我的電眙 完成畫面如下 [copy] Copying 1 file to C: \wsdp-1-gWork\forj2ee [echo jaxm-remote preparation [] Expanding C: \jwsdp-1_webapps \jaxm-renote war into C: \jwsdp-1_8wo rk\forj2ee \jaxm-remote jar】 Building jar:c:、 usdp-1_ work\forj2ee、jaxn- remote.ar [jar] Warning: selected jar files inc lude a META-INF/MANI FEST. Mf which wil I be ignored(please ifest attribute to jar task) Lecho jaxm-soaprp preparation Lunwar] Expanding: C: \jwsdp-1_webapps \jaxm-soaprp war into C: \wsdp-1_8wwo Jar] Building jar: C: \usdp-1_wOrk\forJ2ee \axm-soaprpwar Larl Warning: selected jar files inc lude a META-INF/MANI FEST. MF which e ignored (please use manifest attribute to jar task) Lecho jstl-examples preparation Just copying to C: \jwsdp-1-0/work/for j2 [copy] Copying 1 file to C: \wsdp-1-gwork \for j2ee Lecho] registry-server preparation Just copying to C: \wsdp-1_8/work/forj [copy] Copying 1 file to C: \jwsdp-1-gwork \for j2ee UILD SUCCESSFUL otal time: 5 minutes 53 seconds 接下來利用ant工具對RI做相關設定如Jms, Database 切換至 Petstore目錄·輸入 set
完成畫面如下: 接下來利用 ant 工具對 RI 做相關設定,如 Jms,Databasee 切換至 Petstore 目錄,輸入 setup
下一步驟即是啓動資料庫· Petstore使用的資料庫是IBM的 Cloudscape4.0 指合如下 cloudscape-start C:C: WINN TSystem32cm 、 Documents and Settings \senshaw.S8NTEB00K桌面> cloudscape- start Mon Jul 15 21: 55: 04 CST 2002: [RniJdbc] Starting Cloudscape RmiJdbc Server Versil Mon Jul 15 21: 55: 08 CST 2002: [RniJdbc 1 COM cloudscape core. JDBCDriver registere in DriverManager Mon Jul 15 21: 55: 08 CST 2002: [RmiJdbc] Binding RmiJdbcServer Mon Jul 15 21: 55: 08 CST 2002: [RmiJdbc I No installation of RMI Security Manager Mon Jul 15 21: 55: 09 CST 2002: [RniJdbc l RmiJdbcServer bound in rmi registry 接下來要啓動RI,它是一個Jee內附練習參考用的 Application Server,知 名的J2 ee Application Server如 WebLogic, iPlanet都是由它發展出來的,命合如 j2ee-verbose C WINNTSystem32cmdexe inding DataSource, name jdbc/InventoryDB, url jdbc : cloudscape : rmi: Cloudsca DB: create=true Binding DataSource, name jdbc/DB1, url- jdbc:cloudscape :rmi: Cloudscape DB; creal e jdbc/XACloudscape, url- jdbc/XACloudscapexa jdbc/XACloudscape xa, dataSource COM cloudscapeco noteXaDataSourceC13be b5 tarting JMS service initialization complete waiting for client requests inding:< JMS Destination /Queue, javax. jms Queue inding:< JMS Destination jns/Topic, javax. jms Topic Binding:< JMS Cnx Factory jns/Topic Connection Factory, Topic No properties Binding:< JMS Cnx Factory queue Connection Factory, Queue, No prope ties inding:< JMS Cnx Factory jns/Queue Connection Factory, Queue No properties inding: JMS Cnx Factory Topic Connection Factory, Topic No properties Starting web service at port: 8080 Starting secure web service at port: 7000 2EE SDK/1.3.1 tarting web service at port: 9191 2EE SDK/1.3.1 2EE server startup complete
下一步驟即是啟動資料庫,Petstore 使用的資料庫是 IBM 的 Cloudscape 4.0, 指令如下: cloudscape -start 接下來要啟動 RI,它是一個 J2ee 內附練習參考用的 Application Server,知 名的 J2ee Application Server 如 WebLogic,iPlanet 都是由它發展出來的,命令如下: j2ee –verbose
最後一個安裝步驟了,將 Petstore元件部署至RI 開啓 DOS Command,切換目錄至 Petstore目錄 Webservices Microsoft Windows200版本5.88.2195 C)Copyright 1985-2000 Microsoft Corp D: \dir/ 磁碟區D中的磁碟沒有標鏑 磁碟區序:A8E2-65E Sybase_data] [J2ee13ex] Isapex] Ipetstore1.3.1] Ipro ject] [KM2 Proe ibex] Ipetstore1.3_01] 個目錄68372874位元可用 D: \>cd petstore1-31 D: \petstore1.3.1>cd we services D: \petstore1.3.1 \e services> 鍵入 setup deploy 磁碟區D中的磁碟沒有標籤 磁碟區序鐾:8E2-65E? 目錄:D: Sybase_data] [j2ee13exI Ipetstore1.3.1] Ipro ject] proe ibex】 [pet 1.3_11 檔案 8個目錄683728,784 组可用 Npetstore1.3.1>cd webservices D: \petstore1.3.1 \webservices>setup deploy Buildfile: setup. xmI deploy: [echo] Deploying ears a] Deploy the application in petstore ear on the server localhost savir he client jar as null [java] Sender object Deploy Tool Deploy PetStoreEAR on localhost 此時 Petstore會利用ant工具幫我們 compile*java,然後部署至RI上’完 成後讀者可在瀏覽器上輸人htp/ localhost:8o80 petstore’出現以下畫面就是大功 告成啦!
最後一個安裝步驟了,將 Petstore 元件部署至 RI: 開啟 DOS Command,切換目錄至 Petstore 目錄\webservices 鍵入 setup deploy 此時 Petstore 會利用 ant 工具幫我們 compile *.java,然後部署至 RI 上,完 成後讀者可在瀏覽器上輸入 http://localhost:8080/petstore,出現以下畫面就是大功 告成啦!
3 Java[tm] Pet Store Demo 13.1.Micr 榕案⑤横帽国提①的最要追工具①B明田 中上頁·→④的搜□我的最爱守媒昌·回回 钢址①)httplocalhost8080/petetore ◇移至連结 JavaTM Pet Store Demo 1.3.1 The JavaTM Pet Store De sample application brought to you by the Java M Blue Prints for the Enterpnse program at This sample application demonstrates how to use the capabilties of the J2EE platform to develop flexble, scalable, cros platform e-business applications. It comes with full source code and documentation, so you can experiment with J2EETM technology and learn how to use it to build your own enterpnse solutons To start using the demo, enter the store, yyou are using this demo for the very first time, the demo's database will be ted (Be prepared to wait for a while as the You may also forcefully repopulate the demo s database (Be prepared to wait for a while as the database is populated. About Java BluePrints for the Enterprise The Java BluePrints for the Enterprises program defines the application programming model for the J2EE M platform. It 完成 □□圈近端内部拥路 登入頁產生demo資料( Populateservlet 讀者若要再度啓動 Restore,請在 DOS Command下 loudscape-start 2ee-verbose 若要關閉 Petstore j2ee-stop cloudscape-stop 現在讓我們來體會一下 Petstore神奇的威力!啓動 Petstore後’在瀏覽器輸 人htp/ localhost:8080/ petstore,會出現以下畫面,我們暫且稱它鳥 Petstore說明 頁,以方便往後說明
登入頁產生 demo 資料(PopulateServlet) 讀者若要再度啟動 Pestore,請在 DOS Command 下: cloudscape –start j2ee –verbose 若要關閉 Petstore j2ee –stop cloudscape –stop 現在讓我們來體會一下 Petstore 神奇的威力!啟動 Petstore 後,在瀏覽器輸 入 http://localhost:8080/petstore,會出現以下畫面,我們暫且稱它為 Petstore 說明 頁,以方便往後說明