Android createdurablesubscriber未接收到持久性消息activemq

Android createdurablesubscriber未接收到持久性消息activemq,android,jms,activemq,jms-topic,Android,Jms,Activemq,Jms Topic,我的接收者没有收到持续消息。 若接收者在线,若我正在发送消息,那个么它正在接收消息,但若我不在线(不连接到activeMQ),那个么我在发送消息后发送消息,我连接到activeMQ。在这种情况下,我没有得到消息。 这是我的接收代码 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(Constants.USER_NAME, Constants.PASSWORD,Consta

我的接收者没有收到持续消息。 若接收者在线,若我正在发送消息,那个么它正在接收消息,但若我不在线(不连接到activeMQ),那个么我在发送消息后发送消息,我连接到activeMQ。在这种情况下,我没有得到消息。 这是我的接收代码

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(Constants.USER_NAME,
            Constants.PASSWORD,Constants.BROKER_URL);
    connectionFactory.setTrustAllPackages(true);



        connection = connectionFactory.createConnection();
        connection.setClientID(Utility.getIMEINumber(context));
        connection.start();
        Topic destination = new ActiveMQTopic(Constants.TOPIC_NAME);

        Session receiverSession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        receiverSession.createDurableSubscriber(destination,Utility.getIMEINumber(context));
        MessageConsumer receiver = receiverSession.createConsumer(destination);
我的发件人代码如下

jmsTemplateTopic.convertAndSend(objectMessage);

jms主题配置了持久性交付

当您创建持久订户时,您也应该使用它!在上面的代码中,您正在创建两个订阅者,第一个是持久订阅者,您不使用,第二个是非持久订阅者,我猜您确实使用了(由于缺少其余代码,所以无法判断)。 因此,不是:

    Session receiverSession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    receiverSession.createDurableSubscriber(destination,Utility.getIMEINumber(context));
    MessageConsumer receiver = receiverSession.createConsumer(destination);
尝试:


在发送消息之前,持久订户是否至少连接了一次?是。首先我连接然后断开。
    Session receiverSession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    MessageConsumer receiver = receiverSession.createDurableSubscriber(destination,Utility.getIMEINumber(context));