使用JMS步驟
1.創(chuàng)建一個(gè)JNDI上下文
Context init initCtx =new InitialContext(env);
2.查找創(chuàng)建JMS連接使用的工廠類(Connnect Factory)
對(duì)于主題消息:
Object tmp=initCtx.lookup(“Connnect Factory”);
TopicConnectionFactory tcf=( TopicConnectionFactory) tmp;
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
Object tmp=initCtx.lookup(“Connnect Factory”);
QueueConnectionFactory tcf=( QueueConnectionFactory) tmp;
3.查找JMS的目標(biāo)對(duì)象(Destination)
對(duì)于主題消息:
Topic topic=(Topic)iniCtx.lookup(“topic/testTopic”);
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
Queue queue (Queue)iniCtx.lookup(“queue /A”);
4.創(chuàng)建JMS連接(Connection)
對(duì)于主題消息:
TopicConnection conn=tcp.createTopicConnection();
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
QueueConnection conn=tcp.createQueueConnection ();
5.創(chuàng)建JMS會(huì)話(session)
對(duì)于主題消息:
TopicSession session=conn.createTopicSession(fasle,Session.AUTO_ACKNOWLEDGE);
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
QueueSession session= conn.createQueueSession(true,0);
6.創(chuàng)建消息的生產(chǎn)和消費(fèi)者
生產(chǎn)者:
對(duì)于主題消息:
TopicPublisher publisher=session.createPublisher(topic);
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
QueueSender sender = session.createSender (queue);
消費(fèi)者:
對(duì)于主題消息:
TopicSubscriber subscriber=session.createSubscriber (topic);
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
QueueReceiver receiver= session.createReceiver (queue);
7.注冊(cè)消息的監(jiān)聽者
對(duì)于主題消息:
TextListener listener=new TextListener();
subscriber.setMessageListener(listener);
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
TextListener listener=new TextListener();
receiver.setMessageListener(listener);
8.開始JMS的連接
conn.start();
9.發(fā)送和接受消息
發(fā)送消息:
對(duì)于主題消息:
publisher.publish(message);
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
sender.send(message);
接受消息:
對(duì)于主題消息:
Message msg= subscriber.receive();
對(duì)于點(diǎn)對(duì)點(diǎn)消息:
Message msg= receiver.receive(1000);
10.停止和關(guān)閉JMS連接
conn.stop();
session.close();
conn.close();