JMS開發步驟

2021-04-27 21:30:27 字數 1709 閱讀 1278

乙個典型的jms客戶端由下面的幾個基本步驟來建立:

建立乙個到訊息系統提供者的連線(connection)

建立乙個session,用於接收和傳送訊息

建立messageproducer和messageconsumer來建立和接收訊息

① 建立乙個connection

乙個connection提供客戶端對底層的訊息系統的訪問。並實現資源的分配和管理。通過使用乙個connectionfactory來建立乙個connection,通常用jdni來指定:

connection message=new initialcontext();

topicconnectionfactory topicconnectionfactory=(topicconnectionfactory);

topic = (topic) jndicontext.lookup(topicname);

topicconnection =topicconnectionfactory.createtopicconnection();

②建立乙個session

session是乙個比較大的jms物件,他提供了生產和消費訊息的手段。用於建立訊息使用者和訊息產生者。

topicsession = topicconnection.createtopicsession(false , session.auto_acknowledge);

兩個引數用於控制事務和訊息確認。

③定位乙個topic

用jdni來定位乙個topic,topic用於識別傳送或接收的訊息,在發布/訂閱系統中。訂閱者訂閱乙個給定的topic,而發布者將它發布的訊息與乙個topic相連。

下面是建立乙個topic "weatherreport"

topic weathertopic=messaging.lookup("weatherreport");

④啟動connection

在上面的初始化步驟之後,訊息流是禁止的,用於防止在初始化時發生不可預料的行為。一旦初始化結束,必須讓connection啟動訊息系統。

topicconnection.start();

⑤建立乙個訊息產生者

在發布/訂閱裡,乙個產生者發布訊息到乙個指定的topic。下面的**顯示建立乙個產生者,以及後續的建立和發布乙個簡單文字訊息。

topicpublisher publisher=session.createpublisher(weathertopic);

texemessage message=session.createmessage();

message.settext("ssss");

publisher.publish(message);

下面是乙個訊息使用者的**

topicconnection =topicconnectionfactory.createtopicconnection();

topicsession = topicconnection.createtopicsession(false, session.auto_acknowledge);

topicsubscriber = topicsession.createsubscriber(topic);topiclistener = new msglistener();

topicsubscriber.setmessagelistener(topiclistener);topicconnection.start();

JMS學習筆記(四) JMS開發步驟

1.jms開發步驟 乙個jms 應用是幾個 jms 客戶端交換訊息,開發 jms客戶端應用由以下幾步構成 1 用jndi 得到connectionfactory 物件 2 用connectionfactory 建立connection 物件 3 用connection 物件建立乙個或多個 jms s...

介紹一下JMS 程式設計步驟

第一步 一 配置管理物件 1 配置連線工廠 connectionfactory connectionfactory 在應用伺服器中配置的乙個物件,用來獲得建立訊息中介軟體連線物件.2 配置目的地 第二步 二 分別編寫訊息的傳送和接收程式 1 獲取連線工廠物件 jndi 方式查詢 2 建立連線 con...

Tomcat下應用JMS開發技巧

摘 要 在應用了一些開發框架如spring的專案裡如果要使用到jms,雖然spring提供了部分對jms的支援但經過我一段時間的應用發現,oo的封裝在某些地方反而成為開發過程中的障礙。1 2 brokeruri 3 web inf activemq.xml 4 5 6 7 org.activemq....