JavaEE第11次.doc_第1頁(yè)
JavaEE第11次.doc_第2頁(yè)
JavaEE第11次.doc_第3頁(yè)
JavaEE第11次.doc_第4頁(yè)
JavaEE第11次.doc_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JavaEE企業(yè)級(jí)架構(gòu)開發(fā)與技術(shù)案例教程實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱演示EJB的消息驅(qū)動(dòng)bean示例實(shí)驗(yàn)?zāi)康?. 開發(fā)消息驅(qū)動(dòng)bean的相關(guān)概念2. 消息的傳遞模型3. Queue類型消息開發(fā)步驟1、 實(shí)驗(yàn)?zāi)康?.開發(fā)消息驅(qū)動(dòng)bean的相關(guān)概念2.消息的傳遞模型3.Queue類型消息開發(fā)步驟2、 實(shí)驗(yàn)內(nèi)容及結(jié)果(請(qǐng)將相應(yīng)題目代碼和結(jié)果截圖寫在相應(yīng)題目下方)1. 開發(fā)消息驅(qū)動(dòng)bean的相關(guān)概念(1).java消息驅(qū)動(dòng)bean屬于Java消息服務(wù)(Java Message Service,簡(jiǎn)稱JMS)。(2)JMS是用于訪問(wèn)企業(yè)消息系統(tǒng)的開發(fā)商中心的API。企業(yè)消息系統(tǒng)可以協(xié)助應(yīng)用軟件通過(guò)網(wǎng)絡(luò)進(jìn)行消息交互。(3)JMS的編程過(guò)程簡(jiǎn)單概括為:應(yīng)用程序A-(消息)-Jboss JMS-(消息)-應(yīng)用程序B。應(yīng)用程序A和應(yīng)用程序B沒(méi)有直接的代碼關(guān)聯(lián),兩者實(shí)現(xiàn)了解耦。消息傳遞系統(tǒng)的中心就是消息。消息驅(qū)動(dòng)Bean(MDB)是設(shè)計(jì)用來(lái)專門處理基于消息請(qǐng)求的組件,它和無(wú)狀態(tài)Session Bean一樣也使用了實(shí)例池技術(shù),容器可以使用一定數(shù)量的bean實(shí)例并發(fā)處理成百上千個(gè)JMS消息。正因?yàn)镸DB具有處理大量并發(fā)消息的能力,所以非常適合應(yīng)用在一些消息網(wǎng)關(guān)產(chǎn)品。如果一個(gè)業(yè)務(wù)執(zhí)行的時(shí)間很長(zhǎng),而執(zhí)行結(jié)果無(wú)需實(shí)時(shí)向用戶反饋時(shí),也很適合使用MDB。如訂單成功后給用戶發(fā)送一封電子郵件或發(fā)送一條短信等。消息有下面幾種類型,他們都是派生自Message接口。StreamMessage:一種主體中包含Java基本值流的消息。其填充和讀取均按順序進(jìn)行。MapMessage:一種主體中包含一組名-值對(duì)的消息。(沒(méi)有定義條目順序)TextMessage:一種主體中包含Java字符串的消息(例如:XML消息)ObjectMessage:一種主體中包含序列化Java對(duì)象的消息。BytesMessage:一種主體中包含連續(xù)字節(jié)流的消息。2. 消息的傳遞模型:JMS支持兩種消息傳遞模型:點(diǎn)對(duì)點(diǎn)(point-to-point,簡(jiǎn)稱PTP)和發(fā)布/訂閱(publish/subscribe,簡(jiǎn)稱pub/sub)。二者有以下區(qū)別:1.PTP 消息傳遞模型規(guī)定了一條消息只能傳遞給一個(gè)接收方。采用javax.jms.Queue表示。2.Pub/sub 消息傳遞模型允許一條消息傳遞給多個(gè)接收方。采用javax.jms.Topic表示。注意:每種模型都通過(guò)擴(kuò)展公用基類來(lái)實(shí)現(xiàn)。例如,javax.jms.Queue 和javax.jms.Topic都擴(kuò)展自javax.jms.Destination 類。3. Queue類型消息開發(fā)步驟:Xml代碼:java 中發(fā)送消息的概括:(1).得到一個(gè)JNDI初始化上下文(Context)InitialContext ctx = new InitialContext();(2).根據(jù)上下文查找一個(gè)連接工廠ConnectionFactory,改連接工廠是由JMS提供的,不需我們自己創(chuàng)建,每個(gè)廠商都為它綁定了一個(gè)全局JNDI,我們通過(guò)它的全局JNDI便獲取它;QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup(ConnectionFactory);(3).從連接工廠得到一個(gè)連接QueueConnection。QueueConnection conn = factory.createQueueConnection();(4).通過(guò)連接來(lái)建立一個(gè)會(huì)話(Session);QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);這句代碼意思是:建立不需要事務(wù)的并且能自動(dòng)確立消息已接收的會(huì)話。(5).查找目標(biāo)地址:Destination destination=(Destination)ctx.lookup(queue/ztfQueue);(6).根據(jù)會(huì)話以及目標(biāo)地址來(lái)建立消息生產(chǎn)者M(jìn)essageProducer(QueueSender和TopicPublisher都擴(kuò)展自MessageProducer接口):MessageProducer producer = session.createProducer(destination);TextMessage msg = session.createTextMessage(您好:胡曉亮,這是我的第一個(gè)消息驅(qū)動(dòng)Bean);producer.send(msg);3.建立一個(gè)java項(xiàng)目,把jboss的client目錄下的jar包全部buildPath到編譯路徑中。4.寫消息的發(fā)送端Java代碼:5.寫消息的接收端采用MessageDrivenBean接收消息。當(dāng)容器檢測(cè)到bean守候的目標(biāo)地址有消息到達(dá)時(shí),容器調(diào)用onMessage()方法,將消息作為參數(shù)傳入MDB。MDB在onMessage()中決定如何處理改消息。你可以使用注解指定MDB監(jiān)聽哪一個(gè)目標(biāo)地址(Destination)。當(dāng)MDB部署時(shí),容器將讀取其中的配置信息。一個(gè)MDB通常要實(shí)現(xiàn)MessageListener接口,在接口定義了onMessage()方法。Bean通過(guò)它來(lái)處理收到的JMS消息。Java代碼:6.打包部署:講項(xiàng)目打成一個(gè)jar包,貌似netbC.jar,放在JBOSS的deploy目錄下,啟動(dòng)jboss7.運(yùn)行QueueSender.java 發(fā)送消息3、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論