发送端:
- package com.ccl.app;
- import javax.jms.Destination;
- import javax.jms.MessageProducer;
- import javax.jms.Session;
- import javax.jms.TextMessage;
- import javax.jms.TopicConnection;
- import javax.jms.TopicConnectionFactory;
- import javax.jms.TopicSession;
- import javax.naming.InitialContext;
- public class SendQueue {
- /**
- * @param args
- */
- public static void main(String[] args) {
- try {
- InitialContext ctx = new InitialContext();
- TopicConnectionFactory factory = (TopicConnectionFactory) ctx
- .lookup("TopicConnectionFactory");
- TopicConnection conn = factory .createTopicConnection();
- Session session = conn .createSession(false,
- TopicSession.AUTO_ACKNOWLEDGE);/* 建立不需要事务的并且能够自动确认已接收的会话 */
- Destination destination = (Destination) ctx
- .lookup("queue/jboossTopic");
- MessageProducer producer = session .createProducer(destination);
- TextMessage msg = session
- .createTextMessage("hello java Message service of topic.");
- producer.send(msg);
- System.out.println(msg);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
接收端:
- package com.ccl.app.client;
- import javax.ejb.ActivationConfigProperty;
- import javax.ejb.MessageDriven;
- import javax.jms.JMSException;
- import javax.jms.Message;
- import javax.jms.MessageListener;
- import javax.jms.TextMessage;
- @MessageDriven(activationConfig = {
- @ActivationConfigProperty(propertyName = "destinationType" , propertyValue = "javax.jms.Topic" ),
- @ActivationConfigProperty(propertyName = "destination" , propertyValue = "queue/jboossTopic" )
- })
- public class MessageDrivenBean implements MessageListener {
- @Override
- public void onMessage(Message mess) {
- TextMessage msg = (TextMessage)mess;
- try {
- System.out.println(msg.getText());
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- }