說起EJB開發工具中的豪杰,估計大家都會一致認為非JBuilder莫屬,事實上我也這么認為。但是最近發現MyEclipse也不錯。雖然沒有像JB那樣強大的“EJB Desiner視圖”支持,但是借助XDoclet的多才多藝與靈活高效,也使得MyEclipse在JB面前毫不遜色。
想必閱讀這個文章的朋友都已經具備豐富的開發經驗,有自己動手、發現、解決問題的能力,所以Eclipse和MyEclipse的安裝配置等細節我就不提了,讓我們從MyEclipse下的Weblogic配置開始吧。看圖作文:
(圖1:Weblogic配置)
根據自己的實際情況配置上圖的諸多參數,最后別忘了點擊“Apply”和“OK”按鈕,后面的類似操作也都別忘了。
(圖2:新建一個EJB工程)
選擇一個“J2EE – EJB Project”再Next。
(圖3:新建一個EJB工程續)
注意:因為目前的Xdoclet版本只支持J2EE 1.3,所以為了可以利用Xdoclet來自動生成EJB各接口的代碼和配置描述文件,這里應該選擇J2EE 1.3 規范級別。
(圖4:新建一個EJB工程完畢)
工程創建好了,可以看到初始的目錄結構。
(圖5:新建一個SessionBean Module)
開始創建我們的第一個SessionBean吧。“J2EE – EJB – Session Bean”,就這么簡單。
(圖6:創建期參數)
這個圖片上紅框表示的都是需要特別注意的地方,講解如下:
1. 為適應Xdoclet的慣用法,EJB 組件的Bean類所在的包名應該以“.ejb”結尾,Bean類名應該以“Bean”或“EJB”結尾,這里我用的是“Bean”。
2. 如果這個Bean類不經擴展而直接使用,那么就應該實現一個“ejbCreate”方法。如果擴展后再使用的話,那么可以放到子類里面再實現。
(圖7:SessionBean創建完畢)
初始的SessionBean代碼創建好了,左邊“Package Explorer”里可以看到當前的目錄結構,右邊的代碼窗口里面可以看到Xdoclet自動生成的代碼,里面有一些為進一步生成各種接口代碼以及部署描述文檔所用的Xdoclet標記,這里的標記很淺顯,大家顧名思義一看就明白了,如果要改變部署后的JNDI名稱以符合項目的具體規約要求,那么可以在圖中紅框標示的地方修改。
(圖8:開始Xdoclet配置)
OK,現在開始最重要也最復雜的一步:Xdoclet配置。實際上Jbuilder的代碼自動生成的幕后功臣也是Xdoclet,只不過Borland把它封裝得嚴嚴實實,對于開發者來說就透明化了,這樣做的好處是傻瓜化,降低了配置的難度,壞處很明顯――損失了Xdoclet所著稱的靈活性。
MyEclipse提供了許多標準的Xdoclet模板,我們直接拿來再根據實際情況自定義屈指可數的幾個參數就可以使用了。
(圖9:)
添加一個“Standard EJB”配置
(圖10:Remove不需要的項目)
把我們當前工程中用不到的東西通通刪掉,例如dao,dataobject,entitybmp,entitycmp,entitypk,valueobject,utilobject。得到圖12所示的配置。
(圖11:)
(圖12:)
添加一個weblogic的部署描述選項,接著還要根據實際需要配置它。
(圖13:)
配置Createtables,設置為AlterOrCreate,以便以后加入其它EJB組件時共享一個部署描述文件。
(圖14:)
配置destDir,就是weblogic-ejb-jar.xml文件所在的目錄。
(圖15:)
配置Version,根據實際的weblogic版本去兩個版本號即可,我用的版本是811,這里設為8.1。
(圖16:)
選擇使用動態Xdoclet配置文件還是靜態Xdoclet配置文件,這里使用缺省的“動態”方式即可。
(圖17:)
OK,Xdoclet配置好之后就可以根據它的配置文件批量生成我們所期望的代碼和文檔了。
(圖18:)
Xdoclet執行過程。
(圖19:)
Finished,看看紅色選框里的文件,怎么樣?果然不負眾望吧?這里包括遠程接口、本地接口、遠程Home接口、本地Home接口、ejb-jar.xml、weblogic-ejb-jar.xml等文件。
(圖20:)
這里是遠程接口。看圖中的高亮部分,顧名思義,用你自己的商務方法替換Xdoclet模板生成的示例商務方法。
(圖21:)
這里是Bean類。同樣是將示例方法替換成實際的商務方法。
(圖22:)
代碼都寫好了,文件也都整理好了,嗯,該部署了。
(圖23:)
部署過程很簡單。看圖,在“Project”選項中選擇我們的“Hello”工程,再點擊“Add”按鈕添加一個部署方案。
(圖24:)
部署到在文章初始就配置好的Weblogic8服務器,使用jar包方式。
(圖25:)
配置完畢,該啟動Weblogic看看效果了。 :)btw,整理使用的是離線部署(或者叫做“冷部署”)方式,也就是說在部署過程中Weblogic沒有啟動,這時候如果EJB組件包含部署期可發現的錯誤那么在這一階段將不能得到報告,當然我們也可以使用在線部署(“熱部署”?)方式以即時得到部署期可能的異常,easy,自己嘗試吧。
(圖26:)
部署好之后該干什么呢?看著屏幕發呆?呵呵。。還是先寫個Client測試一下你的EJB組件是不是能夠正常運行吧。如圖,包名和類名除符合基本的JAVA規范之外都沒有硬性的規定,只是習慣上將類名的后綴設為“TestClient”。
(圖27:)
因為要用到Weblogic的初始上下文工廠(WLInitialContextFactory),所以我們應該導入Weblogic的函數庫,就是WL_HOME/server/lib/weblogic.jar了。當然這一步也未必就要放在這里做,反正在測試程序運行之前就可以。
(圖28:)
該編寫我們的測試客戶端的實際代碼了,看圖,就那么二三十行經典代碼,很簡單吧?
(圖29:)
叫上Weblogic,一起開動咯~
(圖30:)
Weblogic啟動成功,啟動過程中會自動載入我們剛才冷部署的EJB組件,這次沒有報告任何異常,說明我們的EJB組件是正確無誤的。
(圖31:)
執行我們的測試客戶端,得到預期的輸出。
(圖32:)
然后觀察Weblogic的控制臺,同樣也是我們所期望的反饋,yeah,收工,吃飯去了。
有問題請大家回帖共同探討。
希望還有機會下次跟大家討論EntityBean的開發,
再下次是MessageDrivenBean,以及綜合實例。:)
參考文獻:《MyEclipse Application Developer Guide》。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=310359