【问题标题】:Sample JMS example using Active MQ使用 Active MQ 的示例 JMS 示例
【发布时间】:2012-04-19 15:16:26
【问题描述】:

我想学习使用 Active MQ 的 JMS 应用程序。
于是下载了 apache-activemq-5.5.1 并启动了服务器
并找到示例代码但无法正常工作。为什么会发生以下异常?
注意:我在我的项目中添加了 activemq 库,该库包含 org.slf4j 模块

 import javax.jms.*;  
 import org.apache.activemq.ActiveMQConnectionFactory;
 import javax.jms.MessageListener;

      //JMS Producer         
       public class JMSProducer {
                public void produce() {
                   String url = "tcp://localhost:61616";
                   ConnectionFactory factory = new ActiveMQConnectionFactory(url);
                     try {
                         Connection connection = factory.createConnection();
                         Session session = connection.createSession(false,
                              Session.AUTO_ACKNOWLEDGE);
                           Topic topic = session.createTopic("TestTopic");
                           MessageProducer producer = session.createProducer(topic);
                          TextMessage msg = session.createTextMessage();
                           msg.setText("Hello JMS World");
                           producer.send(msg);
                   }
                    catch(JMSException exp) {
                     }
                }
           }

  //JMS Consumer
  public class JMSConsumer {
           public void consume() {
               String url = "tcp://localhost:61616";
               ConnectionFactory factory = new ActiveMQConnectionFactory(url);
               try {
                   Connection connection = factory.createConnection();
                    Session session = connection.createSession(false,
                        Session.AUTO_ACKNOWLEDGE);
                     Topic topic = session.createTopic("TestTopic");
                     MessageConsumer consumer = session.createConsumer(topic);
                     JMSMessageListener listener = new JMSMessageListener();
                     consumer.setMessageListener(listener);
                     connection.start();
               }
               catch(JMSException exp) {
               }
           }
       }

//JMS Message Listener
public class JMSMessageListener implements MessageListener {
        @Override
           public void onMessage(javax.jms.Message msg) {
               System.out.println(msg.toString());
           }
       }

【问题讨论】:

    标签: java jms activemq


    【解决方案1】:

    org.slf4j.impl.StaticLoggerBinder时报此错误 类无法加载到内存中。这发生在没有 可以在类路径上找到适当的 SLF4J 绑定。配售 一个(也是唯一一个)slf4j-nop.jar、slf4j-simple.jar、 类上的 slf4j-log4j12.jar、slf4j-jdk14.jar 或 logback-classic.jar 路径应该可以解决问题。

    从 1.6.0 开始,从 SLF4J 版本 1.6 开始,在没有绑定的情况下, SLF4J 将默认为无操作 (NOP) 记录器实现。

    您可以从项目下载页面下载 SLF4J 绑定。

    http://www.slf4j.org/codes.html#StaticLoggerBinder

    【讨论】:

    • +1 - 这对我有帮助。有一个 pom,我在其中尝试使用 JMS 的不同方式,并且 glassfish 的 SLF4J 版本比 ActiveMQ 5.9.1 所需的版本旧。注释掉 pom 中的 glassfish 依赖项导致一切正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2012-06-26
    • 2017-02-14
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多