本帖最后由 zhoutt1989 于 2011-08-02 18:13:09 编辑

解决方案 »

  1.   

    JmsSender类
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.DeliveryMode;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnection;
    import org.apache.activemq.ActiveMQConnectionFactory;public class JmsSender {
        public static void main(String[] args) throws JMSException {
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
                    ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();
            Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
            Destination destination = session.createQueue("testQueue");
            MessageProducer producer = session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
            sendMsg(session, producer);
            producer.close();
            session.commit();
            connection.close();
        }    public static void sendMsg(Session session, MessageProducer producer) throws JMSException {
            // 创建一条文本消息
            TextMessage message = session.createTextMessage("你好 ActiveMQ!");
            producer.send(message);
            System.out.println("");
        }
    }
    JmsReceiver类:
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MessageConsumer;
    import javax.jms.Session;
    import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnection;
    import org.apache.activemq.ActiveMQConnectionFactory;public class JmsReceiver {
        public static void main(String[] args) throws JMSException {
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
                    ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();
            Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
            // 需要在activemq的控制台中创建queue:testqueue
            Destination destination = session.createQueue("testQueue");
            System.out.println("session: " + session);
            System.out.println("destination: " + destination);
            MessageConsumer consumer = session.createConsumer(destination);
            while (true) {
                TextMessage message = (TextMessage) consumer.receive(1000);
                if (null != message)
                    System.out.println("收到消息:" + message.getText());
                else
                    break;
            }
            session.close();
            connection.close();
        }
    }
      

  2.   

    好了,问题解决了,结果其实是slf4j的jar包的版本问题~
      

  3.   

    老兄,你的activeMQ 版本是多少?