繁体   English   中英

无法将消息推送到ActiveMQ

[英]Unable to push message into ActiveMQ

我已成功将消息从本地Eclipse安装程序推送到ActiveMQ中。 但是,当我尝试从服务器作为cron作业执行时,相同的代码不会推送消息。 它甚至不会在代码执行期间引发异常。

Java环境-1.8

使用的配套罐子:

  • slf4j-api-1.8.0-beta2.jar
  • javax.annotation-api-1.2.jar
  • javax.jms-api-2.0.1.jar
  • 管理API-1.1-rev-1.jar
  • activemq-core-5.7.0.jar

码:

try {           
    map = getMessageDetails(session,"MessageQueueEmail");
    userName = map.get("userName");
    password = map.get("password");
    hostName = map.get("mqHostName");
    queue = map.get("queueName");
    // Create a ConnectionFactory
    ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(userName, password, hostName);
    // Create a Connection
    connection = factory.createConnection();
    // start the Connection
    connection.start();
    System.out.println("MQ started connection");
    // Create a Session
    sessionMQ = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

    // Create the destination Queue
    Destination destination = sessionMQ.createQueue(queue);

    // Create a MessageProducer from the Session to the Queue
    messageProducer = sessionMQ.createProducer(destination);
    messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

    // Create a message
    Message message = sessionMQ.createTextMessage(textMsg);
    System.out.println("MQ Message sent successfully");
    // Tell the producer to send the message
    messageProducer.send(message);
} catch(Exception e) {
    e.printStackTrace();
    System.out.println("\n::::::::::::Error occurred sendEmailMessageToIntranet::::::::::::: " + e.getMessage());
}

感谢大家的回应。 将正确的证书文件导入服务器后,该问题得以解决。 想知道为什么MQ尝试失败通知未记录

您的代码看起来还可以,除非您可能要到期。 尝试使用PERSISTENT,很可能是您在cronjob中没有重定向stderr的问题? 确保您执行以下操作:

* / 1 * * * * /something/send.sh &>> /something/out.log

然后在早上检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM