未收到来自主题的ActiveMQ消息

时间:2018-11-01 09:42:00

标签: java properties activemq publish-subscribe

我的状况很奇怪。我正在听一个话题

只要服务器已启动并正在运行,我就能够收听消息。但是我很快停止了服务器,并且消息到达队列中,当服务器再次启动时,我无法使用这些消息。

@Configuration
public class ConnectionFactoryConfig {
    @Value("${jsa.activemq.broker.url}")
    String brokerUrl;

    @Value("${jsa.activemq.borker.username}")
    String userName;

    @Value("${jsa.activemq.borker.password}")
    String password;

    /*
     * Initial ConnectionFactory
     */
    @Bean
    public ConnectionFactory connectionFactory() {
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
        connectionFactory.setBrokerURL(brokerUrl);
        connectionFactory.setUserName(userName);
        connectionFactory.setPassword(password);

        return connectionFactory;
    }

    //  @Bean // Serialize message content to json using TextMessage
    public MessageConverter jacksonJmsMessageConverter() {
        MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
        converter.setTargetType(MessageType.TEXT);
//      converter.setTypeIdPropertyName("_type");
        return converter;
    }

    @Bean
    public JmsListenerContainerFactory<?> jsaFactory(ConnectionFactory connectionFactory,
                                                     DefaultJmsListenerContainerFactoryConfigurer configurer) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setPubSubDomain(true);
//      factory.setMessageConverter(jacksonJmsMessageConverter());
        configurer.configure(factory, connectionFactory);
        factory.setSessionTransacted(true);
        factory.setSubscriptionDurable(true);
        factory.setClientId("TEST_CLIENT");

        return factory;
    }
}

订户

@Component
public class JmsSubcriber {

    @JmsListener(destination = "${jsa.activemq.topic}")
    public void receive(String msg) {

        System.out.println(new Date() + "::Recieved Message: " + msg);
    }
}

属性文件

  

jsa.activemq.broker.url = tcp:// localhost:61616

     

jsa.activemq.borker.username = admin jsa.activemq.borker.password = admin

     

jsa.activemq.topic = jsa-topic spring.jms.pub-sub-domain = true

查看我可以识别的队列中的消息

enter image description here

但是在启动服务器时我没有得到它。

0 个答案:

没有答案