【问题标题】:Getting Compile time error while implementing MessageCreator in ActiveMq在 ActiveMq 中实现 MessageCreator 时出现编译时错误
【发布时间】:2018-01-08 16:56:50
【问题描述】:

我正在尝试进入 ActiveMq 并按照以下链接上的教程进行操作:

Spring-ActiveMq Example

在创建 ActiveMQMessageProducer 类时,我收到以下行的编译时错误:

textMessage.setIntProperty(MSG_COUNT, messageCount);

错误是

"不能引用中定义的非final局部变量messageCount 封闭范围"

我没有得到的是它是如何按照教程工作的。

谢谢

【问题讨论】:

    标签: spring jms activemq producer-consumer


    【解决方案1】:

    本教程中有一个错误,因为内部匿名类的方法不能引用非最终变量。这是一个固定版本:

       public void generateMessages() throws JMSException 
    {
        for (int messageCount = 0; messageCount < 10; messageCount++) 
        {
            final String text = "TP Message " + messageCount;
            final int count = messageCount; // copy the value into a final
            jmsTemplate.send(new MessageCreator() 
            {
                public Message createMessage(Session session) throws JMSException
                {
                    TextMessage textMessage = session.createTextMessage(text);
                    textMessage.setIntProperty(MSG_COUNT, count); // use it             
                    return textMessage;
                }
            });
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2021-04-25
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多