在本例中,你將創(chuàng)建一個(gè)由web項(xiàng)目、EJB項(xiàng)目、客戶端項(xiàng)目和連接器項(xiàng)目組成的名為T(mén)est1的EAR項(xiàng)目。這些從屬的項(xiàng)目分別命名為T(mén)est1Web、Test1EJB、 Test1Client和Test1Connector。一個(gè)EAR項(xiàng)目中必須至少有一個(gè)web項(xiàng)目或一個(gè)EJB項(xiàng)目與之關(guān)聯(lián)。

所選擇的依賴關(guān)系插件
- 點(diǎn)擊File>New>Project,選擇Enterprise Application Project,然后點(diǎn)擊Next。
- 在Project name中輸入Test1。
- 接受默認(rèn)的JavaEE版本并運(yùn)行,點(diǎn)擊Next
- 注意:本教程中默認(rèn)使用的是JavaEE 6版本,而要使用JavaEE 7的話可以在創(chuàng)建新項(xiàng)目中進(jìn)行選擇。

所創(chuàng)建的企業(yè)級(jí)應(yīng)用程序項(xiàng)目的Project Name-必須是一個(gè)合法的Eclipse項(xiàng)目名稱
項(xiàng)目位置——在新項(xiàng)目及其相關(guān)資源中點(diǎn)擊選擇使用默認(rèn)文件系統(tǒng)地址的復(fù)選框。默認(rèn)位置位于MyEclipse開(kāi)啟時(shí)的工作區(qū)目錄。
位置目錄——如果取消選擇使用默認(rèn)位置的復(fù)選框,你可以選擇工作區(qū)目錄之外的另一個(gè)文件位置。
注意:你不能選擇將工作區(qū)目錄作為另外一個(gè)替換目錄,這和在Eclipse一樣是不被允許的。
Java EE版本——指定JEE所遵循規(guī)范的級(jí)別。請(qǐng)確保為你的應(yīng)用所需的JEE特性選擇合適的規(guī)范級(jí)別并且你的應(yīng)用服務(wù)器的部署支持這個(gè)規(guī)范級(jí)別。檢查你的應(yīng)用程序服務(wù)器供應(yīng)商信息是否與JEE規(guī)范級(jí)別相符。
添加Maven支持——在你的項(xiàng)目中啟用Maven項(xiàng)目管理支持的選項(xiàng)。
目標(biāo)運(yùn)行環(huán)境——運(yùn)行環(huán)境是基于你所選擇的JEE版本而決定的。選擇的運(yùn)行環(huán)境必須能夠用于出現(xiàn)在項(xiàng)目構(gòu)建路徑的各種容器(如Spring、JPA、Struts等),你可以在Project Properties>Project Facets page的Runtime標(biāo)簽上改變運(yùn)行環(huán)境。
- 點(diǎn)擊New Module,然后點(diǎn)擊Finish創(chuàng)建所有適用的模塊。模塊會(huì)被包含和選定進(jìn)依賴關(guān)系列表里。
- 點(diǎn)擊Finish創(chuàng)建完成EAR項(xiàng)目。
完成該向?qū)Э梢詣?chuàng)建和配置MyEclipse下的五個(gè)項(xiàng)目Test1、Test1Client、Test1Connector、Test1EJB和Test1Web。

Test1 EAR以及依賴項(xiàng)目
2. 添加和移除模塊
在保證至少有一個(gè)與之關(guān)聯(lián)的web或者EJB模塊項(xiàng)目的前提下,EAR項(xiàng)目可以在任何時(shí)候添加或者移除MyEclipse模塊項(xiàng)目。使用項(xiàng)目的Deployment Descriptor屬性可以添加和移除模塊。
注意:添加和移除模塊項(xiàng)目的操作會(huì)改變EAR項(xiàng)目部署形式的物理形態(tài)。因此,如果你的EAR項(xiàng)目已經(jīng)部署,在你添加或者移除模塊項(xiàng)目之前你應(yīng)當(dāng)解除部署。使用工具欄上的
圖標(biāo)或者右鍵單擊該項(xiàng)目,并選擇MyEclipse>Add and Remove Project Deployments。
2.1 移除一個(gè)模塊項(xiàng)目
- 在Explorer中右鍵點(diǎn)擊Test1項(xiàng)目,選擇MyEclipse>Add and Remove Modules。
- 選擇Test1Web模塊項(xiàng)目,點(diǎn)擊Remove,然后點(diǎn)擊OK。
從Test1中移除Test1Web模塊
移除操作將會(huì)產(chǎn)生以下行為:
- 與Test1項(xiàng)目相關(guān)的Test1Web模塊被移除。
- 依賴于Test1EJB模塊項(xiàng)目的Test1Web項(xiàng)目被移除。
注意:Test1Web項(xiàng)目的代碼庫(kù)在其它方式下沒(méi)有發(fā)生改變。
2.2 添加一個(gè)模塊項(xiàng)目
添加一個(gè)模塊項(xiàng)目到Test1
- 在Explorer中右鍵點(diǎn)擊Test1項(xiàng)目,選擇MyEclipse>Add and Remove Modules。
- 點(diǎn)擊Add。
- 選擇項(xiàng)目,并點(diǎn)擊Next。
- 選擇Test1Web項(xiàng)目,如果列表是空的,則這里沒(méi)有項(xiàng)目與這個(gè)EAR項(xiàng)目所關(guān)聯(lián)。
- 點(diǎn)擊Finish,然后點(diǎn)擊模塊項(xiàng)目窗口的OK。
選擇添加到項(xiàng)目的模塊
完成該流程將會(huì)產(chǎn)生以下行為:
- 創(chuàng)建一個(gè)從Test1到Test1Web的依賴關(guān)系的項(xiàng)目。
- 創(chuàng)建一個(gè)從Test1Web到Test1EJB的依賴關(guān)系的Java項(xiàng)目。
在這一點(diǎn)上,你可以安全部署或者重新部署EAR項(xiàng)目。
3. 安裝示例:TraderX企業(yè)應(yīng)用程序
當(dāng)創(chuàng)建一個(gè)EAR項(xiàng)目時(shí),大多數(shù)的努力都集中在開(kāi)發(fā)web和EJB模塊項(xiàng)目的應(yīng)用程序邏輯上。來(lái)看相關(guān)主題部分的關(guān)聯(lián)信息。
下面示例中的EAR項(xiàng)目是一個(gè)簡(jiǎn)單的股票交易模擬項(xiàng)目,它是由一個(gè)Web項(xiàng)目、一個(gè)EJB 項(xiàng)目和一個(gè)企業(yè)級(jí)項(xiàng)目組成的。這些web模塊是由JSPs組成的,用戶輸入可通過(guò)輸入股票代碼的細(xì)節(jié)進(jìn)行購(gòu)買(mǎi)和賣(mài)出。當(dāng)命令被執(zhí)行后,最近的JSP將買(mǎi)/賣(mài)命令傳遞給一個(gè)與無(wú)狀態(tài)會(huì)話EJB交互的servlet以完成交易。
- 下載以下項(xiàng)目,。
- 選擇File>Import,展開(kāi)General,然后選擇Existing Project into Workspace。點(diǎn)擊Next。
- 點(diǎn)擊Select archive file option,瀏覽示例zip文件,并點(diǎn)擊Finish。
從存檔文件中導(dǎo)入示例文件
4. 部署EAR項(xiàng)目
對(duì)于項(xiàng)目部署,在MyEclipse所支持的應(yīng)用服務(wù)器中你必須使用能夠支持EARs的,本教程使用的是JBoss。
注意:你可以使用MyEclipse的Deployment Assembly進(jìn)行更大的控制部署。
添加部署
- 在Servers view中使用右鍵點(diǎn)擊JBoss服務(wù)器,并選擇Add/ Remove Deployments。
- 在Available column中選擇TraderJEE5,單擊Add。你可以下拉旁邊的配置列表模塊來(lái)選擇是packaged還是exploded,其中exploded是推薦的最有效的開(kāi)發(fā)方式。選擇后點(diǎn)擊Finish。
- 右鍵點(diǎn)擊server,并選擇Start if the server is not running。當(dāng)JBoss啟動(dòng)后,消息會(huì)傳向Console視圖上。當(dāng)看到這則消息說(shuō)明TraderJEE5已經(jīng)成功部署。
JBoss啟動(dòng)時(shí)的輸出信息
5. 測(cè)試EAR項(xiàng)目
TraderX歡迎頁(yè)面
TraderX股票交易表單
- 點(diǎn)擊
。
- 在地址欄輸入U(xiǎn)RL地址//localhost:8080/TraderWeb/html/welcome.html,并點(diǎn)擊回車(chē)鍵。
- 在歡迎頁(yè)面點(diǎn)擊Enter。
- 在股票交易的web表單中,輸入Stock Symbol和Quantity的值,并點(diǎn)擊Submit。
當(dāng)股票交易表單被提交后,transaction.jsp會(huì)與servlet產(chǎn)生交互,啟動(dòng)一個(gè)名為T(mén)rader的無(wú)狀態(tài)會(huì)話EJB。這個(gè)Trader EJB只是作為演示而不與實(shí)際交易服務(wù)進(jìn)行交互。
TraderX交易確認(rèn)
6. 高級(jí):使用Dependent Java Projects的可選包支持
可選包是JEE模塊在運(yùn)行時(shí)所需要的一個(gè)或者多個(gè)獨(dú)立的JAR文件。事實(shí)上,術(shù)語(yǔ)“可選包”在很多時(shí)候都是不準(zhǔn)確的,比如在沒(méi)有Jars等文件時(shí)依賴的JEE模塊就無(wú)法正常工作。對(duì)于這些Jars文件,更準(zhǔn)確的名字是“必需包”。JEE規(guī)范支持將可選包Jar列入一種EAR文件并被來(lái)自于(那些需要Jars提供服務(wù)的)任意模塊中MANIFEST.MF文件的類搜索路徑所引用。
對(duì)于使用其它Jar文件打包服務(wù)的EJB模塊來(lái)說(shuō),可選包部署是更加常見(jiàn)的需求。與能夠提供壓縮庫(kù)的WAR不同,EJB Jar沒(méi)有這樣的功能。舉個(gè)例子,如果某個(gè)EJB模塊使用Log4J作為它的日志服務(wù)器,那么這個(gè)Log4J Jar庫(kù)就必須會(huì)被放進(jìn)EAR中并在EJB模塊的manifest文件中進(jìn)行引用。
要將一個(gè)Java項(xiàng)目服務(wù)配置成為可選包,你必須使其成為一個(gè)企業(yè)級(jí)項(xiàng)目的依賴項(xiàng)目。在示例場(chǎng)景中,Test1EJB項(xiàng)目需要來(lái)自于Logging Java project的日志服務(wù)。由于EJB項(xiàng)目有限的JEE部署形式,可使用包含Test1EJB項(xiàng)目的企業(yè)級(jí)項(xiàng)目來(lái)作為模塊并將Logging Java project來(lái)作為其依賴項(xiàng)目。
6.1 配置Dependent Java Projects作為可選包
添加Test1的依賴關(guān)系文件
選擇項(xiàng)目指令
- 在Explorer中右鍵點(diǎn)擊Test1,選擇Properties。
- 展開(kāi)MyEclipse,選擇Deployment Assembly,并點(diǎn)擊Add。
- 選擇Project,并點(diǎn)擊Next。
- 選擇Logging project,并點(diǎn)擊Finish。然后點(diǎn)擊OK關(guān)閉Properties窗口。
- 把logging.jar模塊的依賴文件列入到Test1EJB項(xiàng)目MANIFEST.MF文件的類路徑,右鍵點(diǎn)擊Test1EJB并選擇Properties。
- 展開(kāi)MyEclipse,選擇Deployment Assembly并點(diǎn)擊Manifest Entries tab。
- 點(diǎn)擊Add,選擇Logging.jar,然后點(diǎn)擊Finish。點(diǎn)擊OK關(guān)閉Properties窗口。
Test1EJB MANIFEST.MF
標(biāo)簽:
前端開(kāi)發(fā)IDE集成開(kāi)發(fā)環(huán)境 移動(dòng)開(kāi)發(fā)EclipseMyEclipse
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn