使用MyEclipse開(kāi)發(fā)Java EE應(yīng)用:創(chuàng)建一個(gè)JavaEE EJB項(xiàng)目(上)
買MyEclipse送Java暢銷書(shū),僅限15天!!活動(dòng)火熱開(kāi)啟中>>
一、創(chuàng)建一個(gè)EJB項(xiàng)目
首先創(chuàng)建一個(gè)包含EJB的新EJB項(xiàng)目。
注意:本教程中創(chuàng)建的項(xiàng)目可在Resources section中找到。
1. 選擇File>New>Project,然后雙擊EJB Project。
2. 在Project name字段中輸入SampleEJBProject。
3. 接受默認(rèn)的JavaEE 6.0 – EJB 3.1版本,選擇無(wú)JPA支持,然后單擊Finish。向?qū)е械氖S嘧侄螐腗yEclipse EJB項(xiàng)目模板中填入,此模板在MyEclipse Java Enterprise Project參數(shù)中定義。
注意:本教程使用默認(rèn)的JavaEE 6版本;而JavaEE 7是創(chuàng)建新項(xiàng)目時(shí)的可用項(xiàng)目。
您可以選擇配置任何數(shù)據(jù)源用于生成此項(xiàng)目的EJB3 Entity Beans。
新項(xiàng)目包括默認(rèn)的ejbModule源文件夾和一個(gè)sampleejbproject包:
二、創(chuàng)建無(wú)狀態(tài)會(huì)話Bean
創(chuàng)建無(wú)狀態(tài)會(huì)話bean涉及定義bean的接口并創(chuàng)建會(huì)話bean。當(dāng)會(huì)話Bean生成時(shí)實(shí)現(xiàn)兩個(gè)接口,一個(gè)用于本地呼叫(在同一個(gè)VM中),另一個(gè)用于遠(yuǎn)程呼叫(外部VM,網(wǎng)絡(luò)上等)??梢愿鶕?jù)調(diào)用者顯示不同的功能(例如,不要將方法暴露給返回巨大數(shù)據(jù)集的遠(yuǎn)程調(diào)用)。
對(duì)于本教程,在某些情況下,您將完全相同的信息暴露給Bean的本地和遠(yuǎn)程調(diào)用者。由于這個(gè)假設(shè),通過(guò)使用其中定義的所有方法實(shí)現(xiàn)基礎(chǔ)接口,代碼仍然很容易遵循,本地和遠(yuǎn)程版本的bean都擴(kuò)展并且實(shí)現(xiàn)會(huì)話Bean。 結(jié)果如下:
1. 右鍵單擊sampleejbproject包,然后選擇New>Interface。
2. 在Name字段中輸入IMyBean。
3. 單擊Add,在Choose interfaces字段中輸入java.io.,然后選擇Serializable,單擊OK。這擴(kuò)展了Serializable,因此如果需要,應(yīng)用程序服務(wù)器可以更好地處理會(huì)話Bean。
4. 單擊Finish。
5. IMyBean界面將在Java編輯器中自動(dòng)打開(kāi)。添加一個(gè)方法簽名,如下所示,然后按CTRL + S保存。
6. 右鍵單擊package,然后選擇New>EJB3 Session Bean。
7. 在Name字段中輸入MyBean,檢查本地和遠(yuǎn)程復(fù)選框來(lái)生成本地和遠(yuǎn)程接口版本,然后單擊Finish。
使用本地和遠(yuǎn)程接口創(chuàng)建會(huì)話bean并將其添加到項(xiàng)目中。
具有會(huì)話bean和MyBeanLocal及MyBeanRemote接口的項(xiàng)目結(jié)構(gòu)需要修改來(lái)擴(kuò)展IMyBean,并將doSomething()的實(shí)現(xiàn)添加到MyBean中。如果您沒(méi)有定義IMyBean,則必須將方法定義從MyBeanLocal和MyBeanRemote復(fù)制粘貼到這些方法中,在單個(gè)界面中定義方法會(huì)容易些。提醒您,現(xiàn)在有這樣的結(jié)構(gòu):
8. 雙擊MyBean.java,并在最終括號(hào)之前添加以下代碼來(lái)實(shí)現(xiàn)添加到bean接口的doSomething()方法。 按CTRL + S保存。
public void doSomething() { System.out.println("Hello World!"); }
此外,每個(gè)接口都需要擴(kuò)展IMyBean。 打開(kāi)MyBeanLocal.java和MyBeanRemote.java,并將IMyBean擴(kuò)展到公共接口,如下所示:
public interface MyBeanLocal extends IMyBean { }