top
Loading...
圖解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應用服務器:

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等應用服務器軟件的使用方法。這種特性,使得應用開發者可將更多的精力投入到應用系統的設計和開發中去,從而,可大大提高開發效率。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗