圖解JDeveloper10g快速開發會話EJB
摘要 本文詳細介紹了在Oracle JDeveloper 10g環境下開發會話Bean所涉及到的JDeveloper安裝、配置方法以及Enterprise JavaBean的設計、開發、運行、測試方法,為Java初學者和JDeveloper學習者提供了有益的參考。
1、JDeveloper 10g開發工具簡介
JDeveloper 10g是全球最大的數據庫軟件供應商甲骨文公司(Oracle Corporation)開發的一款Java應用集成開發環境(IDE)軟件。它針對Java應用開發中的各項活動提供了全面的支持,例如支持版本控制、系統建模、編碼開發、程序調試、自動測試、系統性能優化等,以及具有方便地部署Java應用程序和Web服務的特性,大大簡化了應用系統的發布操作。
不但如此,Oracle JDeveloper 10g 中還提出了其特有的J2EE 開發框架——Oracle Application Development Framework(ADF)。該框架以 J2EE 設計模式為基礎,不僅可幫助程序員開發更為健壯的 J2EE 應用系統,也可大幅度提高程序的編寫效率、縮短應用系統的開發時間。
2、為什么用JDeveloper進行會話Bean的開發
如上所述,JDeveloper 10g開發工具不但具有很強的系統集成度,而且,也具有了提高開發生產率的一些有益特性。
除此之外,JDeveloper 10g具有可免費獲得并使用、基于模型驅動開發(MDA)、以及集成OC4J J2EE應用服務器的特性,決定了無論是開發還是學習,其都不失為一個好的集成開發環境。
因此,本文以簡單的Hello Session Bean為例,來說明JDeveloper 10g下EJB的設計、編碼、發布以及測試的方法和步驟,以為J2EE初學者降低學習門檻,提供更好的學習工具。
3、JDeveloper 10g運行環境的準備
3.1 下載
① 從Sun網站下載J2SE 1.4.2安裝包
② 從Oracle公司網站(http://www.oracle.com)下載Oracle JDeveloper 10g開發工具(.zip文件)
3.2 安裝并設置Java 運行環境
安裝下載的J2SE 1.4.2安裝包,并進行環境變量的設置。具體設置方法略,請參看相關文檔。
需要說明的是,經筆者測試,若Java SDK用的是J2SE 1.5(即Tiger),則JDeveloper 10g的OC4J應用服務器啟動時會報錯,因此,建議最好使用J2SE 1.4.2。
3.3 解壓縮JDeveloper
下載的Oracle JDeveloper 10g開發工具(.zip文件)不需要安裝,只需將其解壓縮到硬盤分區的某個文件夾下即可,如解壓縮到G:Jdev9052。
4、JDeveloper 10g應用服務器OC4J的安裝
JDeveloper 10g產品中內嵌了Oracle的J2EE應用服務器軟件——OC4J,其支持J2EE 1.3組件的開發。在此例中,要使用OC4J應用服務器,必須對其進行安裝并做必要的設置。
4.1安裝和設置OC4J應用服務器
在Windows中進入Dos命令提示符,輸入以下Dos命令以安裝和設置OC4J應用服務器:
正常情況下,該命令將顯示如下信息:
在上述過程中,需要輸入兩次應用服務器管理員用戶admin的密碼,這里為了便于記憶,設置管理員密碼為1234。
4.2 測試應用服務器
在G:Jdev9052in目錄下,存在兩個批處理文件:start_oc4j.bat和stop_oc4j.bat,分別用來啟動和關閉OC4J應用服務器。
4.2.1 啟動應用服務器OC4J
再進入Dos命令提示符下,輸入以下命令:
正常情況下,將顯示以下信息:
4.2.2 關閉應用服務器OC4J
在Dos提示符下進入G:jdev9052jdevin目錄,輸入命令:
其中,admin是管理員賬號,1234是在安裝過程中輸入的管理員密碼。
輸出信息略。
4.3 在JDeveloper中設置到OC4J應用服務器的連接
運行G:Jdev9052jdevinjdevw.exe程序,可啟動JDeveloper 10g開發工具。首次運行將詢問你是否從以前版本升級,選擇否即可。
(因后續內容多用圖示表達,故只添加少量文字說明)
建立到OC4J應用服務器連接的操作步驟如以下圖所示:
在圖3窗口中,填寫admin用戶的密碼為:1234
在圖4窗口中,直接選擇“下一步”即可。
這里可以點擊“Test Connection”按鈕進行連接測試,當然,正確連接的前提是,你先前已經通過4.2.1節的方法啟動了OC4J應用服務器。
此處,我們不進行測試,直接選擇“完成”。
5、在JDeveloper 10g中新建應用程序空間
應用程序空間是JDeveloper組織和管理多個應用項目(Project)的一種管理形式。一個應用程序空間中可以包含多個應用項目。
新建應用程序空間的具體操作:選擇工具欄中的“新建”按鈕。
選擇Application Workspace(這種Workspace可以為應用指定所要使用的模板),然后選擇“確定”。
在上面的對話框中輸入應用程序名稱、應用程序包的前綴、應用模板等信息。這里,應用模板選擇Web Application[JSP,Struts,EJB]模板。
6、JDeveloper 10g中Hello Session Bean的設計與開發
6.1 為業務模型建立EJB Diagram
具體操作如以下圖所示:
輸入Diagram名稱:
通過拖動組件面板中的“SessionBean”按鈕到編輯區方法從而創建會話Bean類:
出現“Create Enterprise JavaBean”對話框:
在圖16窗口中,注意勾選“Include Local Interface”項。
選擇“完成”,則編輯區效果如下:
6.2 為HelloSessionEJB類添加業務處理方法
鼠標雙擊圖中的HelloSessionEJB類圖,將出現下面的對話框:
選擇“Add”按鈕,進行業務處理方法的添加:
輸入sayHello方法名及該方法返回值的數據類型等參數,然后選擇“確定”按鈕。
6.3 調整圖形元素的尺寸大小
6.4 為會話Bean的sayHello方法編寫實現代碼
具體操作如下:
為sayHello方法添加以下代碼:
6.5 修改HelloSessionEJBBean.java的部分代碼
對類HelloSessionEJBBean中的代碼作如下修改:
7、驗證和測試Hello Session Bean
7.1 驗證EJB
驗證的作用:通過EJB驗證,可發現由于手工修改代碼造成的接口聲明和實現代碼不一致的錯誤,從而防止編譯、發布和運行期間可能出現的錯誤。
具體驗證操作如下:
查看結果:
通過觀察上述窗口中的信息,說明操作沒有錯誤和可疑之處。
7.2 建立EJB組件的客戶端測試程序
具體操作如下:
出現:
這里,選擇Connect to OC4J Embedded in JDeveloper,即客戶端測試程序及所用的EJB組件將在嵌入的OC4J容器中運行。
若選擇第二項,則可將EJB組件發布到遠程應用服務器,并試圖在遠程服務器中運行客戶端測試程序;當然,此時。遠程應用服務器應已經啟動。
7.3 修改客戶端測試程序
將客戶端測試程序中的語句
前的注釋去掉,修改如下:
8、編譯和運行程序
8.1 編譯程序
8.2 發布EJB組件
在JDeveloper 10g中,將Enterprise JavaBean組件發布到內嵌的OC4J應用服務器十分方便,發布(Deploy)操作不需要建立發布描述文件以及進行打包操作;只需運行EJB組件即可,如下圖所示:
選擇運行命令之后,JDeveloper將自動啟動OC4J應用服務器,并發布上述HelloSessionEJB組件到該服務器,具體信息在Embedded OC4J Server窗口中顯示如下:
查看最后一句話,說明EJB組件被正確發布了。
8.3 運行客戶端測試程序
運行HelloSessionEJBClient.java程序,查看運行結果:
說明EJB組件客戶端程序正確地調用了Hello Session Bean的sayHello方法。
9、結束語
通過上述操作,讀者可以看出,在JDeveloper 10g開發工具中設計、開發和測試EJB組件具有直觀和易于操作的特性,尤其,在EJB組件發布時,既不需要編寫用于發布的XML文件,也不需要掌握WebLogic或JBoss等應用服務器軟件的使用方法。這種特性,使得應用開發者可將更多的精力投入到應用系統的設計和開發中去,從而,可大大提高開發效率。
1、JDeveloper 10g開發工具簡介
JDeveloper 10g是全球最大的數據庫軟件供應商甲骨文公司(Oracle Corporation)開發的一款Java應用集成開發環境(IDE)軟件。它針對Java應用開發中的各項活動提供了全面的支持,例如支持版本控制、系統建模、編碼開發、程序調試、自動測試、系統性能優化等,以及具有方便地部署Java應用程序和Web服務的特性,大大簡化了應用系統的發布操作。
不但如此,Oracle JDeveloper 10g 中還提出了其特有的J2EE 開發框架——Oracle Application Development Framework(ADF)。該框架以 J2EE 設計模式為基礎,不僅可幫助程序員開發更為健壯的 J2EE 應用系統,也可大幅度提高程序的編寫效率、縮短應用系統的開發時間。
2、為什么用JDeveloper進行會話Bean的開發
如上所述,JDeveloper 10g開發工具不但具有很強的系統集成度,而且,也具有了提高開發生產率的一些有益特性。
除此之外,JDeveloper 10g具有可免費獲得并使用、基于模型驅動開發(MDA)、以及集成OC4J J2EE應用服務器的特性,決定了無論是開發還是學習,其都不失為一個好的集成開發環境。
因此,本文以簡單的Hello Session Bean為例,來說明JDeveloper 10g下EJB的設計、編碼、發布以及測試的方法和步驟,以為J2EE初學者降低學習門檻,提供更好的學習工具。
3、JDeveloper 10g運行環境的準備
3.1 下載
① 從Sun網站下載J2SE 1.4.2安裝包
② 從Oracle公司網站(http://www.oracle.com)下載Oracle JDeveloper 10g開發工具(.zip文件)
3.2 安裝并設置Java 運行環境
安裝下載的J2SE 1.4.2安裝包,并進行環境變量的設置。具體設置方法略,請參看相關文檔。
需要說明的是,經筆者測試,若Java SDK用的是J2SE 1.5(即Tiger),則JDeveloper 10g的OC4J應用服務器啟動時會報錯,因此,建議最好使用J2SE 1.4.2。
3.3 解壓縮JDeveloper
下載的Oracle JDeveloper 10g開發工具(.zip文件)不需要安裝,只需將其解壓縮到硬盤分區的某個文件夾下即可,如解壓縮到G:Jdev9052。
4、JDeveloper 10g應用服務器OC4J的安裝
JDeveloper 10g產品中內嵌了Oracle的J2EE應用服務器軟件——OC4J,其支持J2EE 1.3組件的開發。在此例中,要使用OC4J應用服務器,必須對其進行安裝并做必要的設置。
4.1安裝和設置OC4J應用服務器
在Windows中進入Dos命令提示符,輸入以下Dos命令以安裝和設置OC4J應用服務器:
| D:Documents and SettingsAdministrator>g: G:>cd jdev9052j2eehome G:jdev9052j2eehome>java -jar oc4j.jar –install |
正常情況下,該命令將顯示如下信息:
| Auto-unpacking G:jdev9052_orgj2eehomeapplicationsdms0.war... done. Auto-unpacking G:jdev9052_orgj2eehomeapplicationsdms.war... done. Auto-unpacking G:jdev9052_orgBC4Jedistc4j.ear... done. Auto-unpacking G:jdev9052_orgBC4Jedistc4jwebapp.war... done. Auto-deploying bc4j (New server version detected)... Auto-unpacking G:jdev9052_orgsoaplibsoap.ear... done. Auto-unpacking G:jdev9052_orgsoaplibsoapsoap.war... done. Auto-deploying soap (New server version detected)... To enable in-process JSP compilation (which can be faster in some cases), please add the path to your tools.jar in application.xml Example: <library path="http://www.zhujiangroad.com/http://www.zhujiangroad.com/http://www.zhujiangroad.com/jdk/lib/tools.jar" /> Enter an admin password to use: 1234 Confirm admin password: 1234 If you are using J2SE 1.4 or higher, please ensure that all your imported classe s are within packages, as required by the Java Language Specification. Installation done |
在上述過程中,需要輸入兩次應用服務器管理員用戶admin的密碼,這里為了便于記憶,設置管理員密碼為1234。
4.2 測試應用服務器
在G:Jdev9052in目錄下,存在兩個批處理文件:start_oc4j.bat和stop_oc4j.bat,分別用來啟動和關閉OC4J應用服務器。
4.2.1 啟動應用服務器OC4J
再進入Dos命令提示符下,輸入以下命令:
| D:Documents and SettingsAdministrator>g: G:>cd jdev9052jdevin G:jdev9052jdevin>start_oc4j |
正常情況下,將顯示以下信息:
| Starting OC4J with command: D:Javajdk1.5.0injava.exe -jar oc4j.jar 04/11/20 22:44:37 Auto-deploying file:/G:/jdev9052_org/j2ee/home/applications/dm s0/ (New server version detected)... 04/11/20 22:44:37 Auto-deploying file:/G:/jdev9052_org/j2ee/home/default-web-app / (New server version detected)... 04/11/20 22:44:37 Auto-deploying file:/G:/jdev9052_org/j2ee/home/applications/dm s/ (New server version detected)... 04/11/20 22:44:37 Auto-deploying file:/G:/jdev9052_org/BC4J/redist/bc4j/webapp/ (New server version detected)... 04/11/20 22:44:37 Auto-deploying file:/G:/jdev9052_org/soap/lib/soap/soap/ (New server version detected)... 04/11/20 22:44:45 Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized |
4.2.2 關閉應用服務器OC4J
在Dos提示符下進入G:jdev9052jdevin目錄,輸入命令:
| stop_oc4j admin 1234 |
其中,admin是管理員賬號,1234是在安裝過程中輸入的管理員密碼。
輸出信息略。
4.3 在JDeveloper中設置到OC4J應用服務器的連接
運行G:Jdev9052jdevinjdevw.exe程序,可啟動JDeveloper 10g開發工具。首次運行將詢問你是否從以前版本升級,選擇否即可。
(因后續內容多用圖示表達,故只添加少量文字說明)
建立到OC4J應用服務器連接的操作步驟如以下圖所示:
![]() 圖1 新建應用服務器連接操作 |
![]() 圖2 選擇應用服務器類型窗口 |
![]() 圖3 設置應用服務器連接參數窗口1 |
在圖3窗口中,填寫admin用戶的密碼為:1234
![]() 圖4 設置應用服務器連接參數窗口2 |
在圖4窗口中,直接選擇“下一步”即可。
![]() 圖5 應用服務器連接測試窗口 |
這里可以點擊“Test Connection”按鈕進行連接測試,當然,正確連接的前提是,你先前已經通過4.2.1節的方法啟動了OC4J應用服務器。
此處,我們不進行測試,直接選擇“完成”。
5、在JDeveloper 10g中新建應用程序空間
應用程序空間是JDeveloper組織和管理多個應用項目(Project)的一種管理形式。一個應用程序空間中可以包含多個應用項目。
新建應用程序空間的具體操作:選擇工具欄中的“新建”按鈕。
![]() 圖6 選擇新建類型窗口 |
選擇Application Workspace(這種Workspace可以為應用指定所要使用的模板),然后選擇“確定”。
![]() 圖7 模板類型設置窗口 |
在上面的對話框中輸入應用程序名稱、應用程序包的前綴、應用模板等信息。這里,應用模板選擇Web Application[JSP,Struts,EJB]模板。
6、JDeveloper 10g中Hello Session Bean的設計與開發
6.1 為業務模型建立EJB Diagram
具體操作如以下圖所示:
![]() 圖8 新建項目操作 |
![]() 圖9 選擇新建項目窗口 |
輸入Diagram名稱:
![]() 圖10 EJB組件參數設置窗口 |
通過拖動組件面板中的“SessionBean”按鈕到編輯區方法從而創建會話Bean類:
![]() 圖11 JDeveloper 10g界面中的組件面板(Component Palette) |
出現“Create Enterprise JavaBean”對話框:
![]() 圖12 創建Enterprise JavaBean歡迎窗口 |
![]() 圖13 創建Enterprise JavaBean向導操作1 |
![]() 圖14 創建Enterprise JavaBean向導操作2 |
![]() 圖15 創建Enterprise JavaBean向導操作3 |
![]() 圖16 創建Enterprise JavaBean向導操作4 |
在圖16窗口中,注意勾選“Include Local Interface”項。
![]() 圖17 創建Enterprise JavaBean完成后的摘要信息 |
選擇“完成”,則編輯區效果如下:
![]() 圖18 EJB Diagram圖中被創建的Session Bean |
6.2 為HelloSessionEJB類添加業務處理方法
鼠標雙擊圖中的HelloSessionEJB類圖,將出現下面的對話框:
![]() 圖19 EJB模塊屬性編輯窗口 |
選擇“Add”按鈕,進行業務處理方法的添加:
![]() 圖20 業務方法參數設置窗口 |
輸入sayHello方法名及該方法返回值的數據類型等參數,然后選擇“確定”按鈕。
6.3 調整圖形元素的尺寸大小
![]() 圖21 調整圖形大小操作 |
6.4 為會話Bean的sayHello方法編寫實現代碼
具體操作如下:
![]() 圖22 查看HelloSessionEJB組件的實現代碼操作 |
為sayHello方法添加以下代碼:
| public String sayHello() { return "Hello, world"; } |
6.5 修改HelloSessionEJBBean.java的部分代碼
對類HelloSessionEJBBean中的代碼作如下修改:
| SessionContext ctx; //添加 public void setSessionContext(SessionContext ctx) { this.ctx = ctx; //添加 } |
7、驗證和測試Hello Session Bean
7.1 驗證EJB
驗證的作用:通過EJB驗證,可發現由于手工修改代碼造成的接口聲明和實現代碼不一致的錯誤,從而防止編譯、發布和運行期間可能出現的錯誤。
具體驗證操作如下:
![]() 圖23 驗證EJB組件操作 |
查看結果:
![]() 圖24 查看驗證操作的結果 |
通過觀察上述窗口中的信息,說明操作沒有錯誤和可疑之處。
7.2 建立EJB組件的客戶端測試程序
具體操作如下:
![]() 圖25 新建EJB組件測試程序操作 |
出現:
![]() 圖26 測試程序運行容器類型設置窗口 |
這里,選擇Connect to OC4J Embedded in JDeveloper,即客戶端測試程序及所用的EJB組件將在嵌入的OC4J容器中運行。
若選擇第二項,則可將EJB組件發布到遠程應用服務器,并試圖在遠程服務器中運行客戶端測試程序;當然,此時。遠程應用服務器應已經啟動。
7.3 修改客戶端測試程序
將客戶端測試程序中的語句
| // helloSessionEJB.sayHello( ); |
前的注釋去掉,修改如下:
| String s = helloSessionEJB.sayHello( ); System.out.println("結果:" + s); |
8、編譯和運行程序
8.1 編譯程序
![]() 圖27 程序編譯操作 |
8.2 發布EJB組件
在JDeveloper 10g中,將Enterprise JavaBean組件發布到內嵌的OC4J應用服務器十分方便,發布(Deploy)操作不需要建立發布描述文件以及進行打包操作;只需運行EJB組件即可,如下圖所示:
![]() 圖28 EJB組件的發布 |
選擇運行命令之后,JDeveloper將自動啟動OC4J應用服務器,并發布上述HelloSessionEJB組件到該服務器,具體信息在Embedded OC4J Server窗口中顯示如下:
| [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.] …… [waiting for the server to complete its initialization...] …… 04/11/21 00:15:04 Auto-deploying - compiling and loading... …… Embedded OC4J startup time: 193137 ms. …… All EJBs are successfully deployed. |
查看最后一句話,說明EJB組件被正確發布了。
8.3 運行客戶端測試程序
運行HelloSessionEJBClient.java程序,查看運行結果:
![]() 圖29 測試程序運行結果 |
說明EJB組件客戶端程序正確地調用了Hello Session Bean的sayHello方法。
9、結束語
通過上述操作,讀者可以看出,在JDeveloper 10g開發工具中設計、開發和測試EJB組件具有直觀和易于操作的特性,尤其,在EJB組件發布時,既不需要編寫用于發布的XML文件,也不需要掌握WebLogic或JBoss等應用服務器軟件的使用方法。這種特性,使得應用開發者可將更多的精力投入到應用系統的設計和開發中去,從而,可大大提高開發效率。




























