【问题标题】:How to send XML file to ActiveMQ?如何将 XML 文件发送到 ActiveMQ?
【发布时间】:2019-12-08 23:32:52
【问题描述】:

在我的应用程序中,我使用 JAXB 将对象转换为 XML。我需要将此 XML 文件传输到 ActiveMQ 队列。以前我以这样的字符串形式将消息发送到队列:

public class Main {
    private static String url = ActiveMQConnection.DEFAULT_BROKER_URL;
    private static String subject = "TestQueue";

    public static void main(String[] args) throws JMSException {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        Connection connection = connectionFactory.createConnection();
        connection.start();

        Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue(subject);
        MessageProducer producer = session.createProducer(destination); 
        TextMessage message = session.createTextMessage("secondMessage ");
        producer.send(message);
        connection.close();
    }
}

但现在我需要传输 XML 文件。我该怎么做?

【问题讨论】:

  • 你尝试了什么,为什么你尝试的没有工作?请详细说明。
  • 我有一个问题,因为我不知道如何将 XML 文件发送到 activemq 队列。我没有找到解决问题的必要信息

标签: java spring-mvc jaxb activemq message-queue


【解决方案1】:

在 JMS(以及一般的消息传递)中,您发送 消息 而不是文件。您可以通过从文件中读取数据并将其放入 JMS 文本或字节消息中来将文件转换为消息。最简单的解决方案是这样的:

public class Main {
    private static String url = ActiveMQConnection.DEFAULT_BROKER_URL;
    private static String subject = "TestQueue";

    public static void main(String[] args) throws JMSException {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        Connection connection = connectionFactory.createConnection();
        connection.start();

        Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue(subject);
        MessageProducer producer = session.createProducer(destination); 
        String xml = readXmlFromFile();
        TextMessage message = session.createTextMessage(xml);
        producer.send(message);
        connection.close();
    }

    private static String readXmlFromFile() {
        // read XML from file
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 2017-01-05
    • 2018-03-29
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2020-09-26
    相关资源
    最近更新 更多