【问题标题】:How can I use TextMessage to send an XML file to the JMS Queue?如何使用 TextMessage 将 XML 文件发送到 JMS 队列?
【发布时间】:2012-11-07 16:26:40
【问题描述】:

oracle文档说 -

TextMessage 对象用于发送包含 java.lang.String 的消息。它从 Message 接口继承 > 并添加了文本消息正文。 此消息类型可用于传输基于文本的消息,包括具有 XML >内容的消息。

这怎么可能? XML 的内容是否只能发送(通过将其转换为对象然后发送)? XML 文件真的可以以任何方式放入队列中,然后在接收方读取吗?

【问题讨论】:

  • 您可以将 xml 文件作为 File 对象或解析的对象(通过 SAX 等)发送,或者将所有 xml 数据作为字符串读取并发送。您到底想要什么?
  • 我知道第二部分(将所有 xml 数据作为字符串读取并发送)。你能帮我第一个吗?或者可以这样做 - 编写一个 XML(或任何文件)并放入队列中,然后接收者读取 XML(文件)并处理它?

标签: java xml jms


【解决方案1】:

请使用这个并且您发送的对象必须是可序列化的

class Master implements serializable
 {
   List<File> f=new ArrayList<File>();
  //getter and setter
 }

根据需要添加 --xml 文件

     Master eMaster = new Master();
    eMaster.setF();
    //add Files here 

    QueueSender queueSender = queueSession.createSender(queue1);
    ObjectMessage objMessage = queueSession.createObjectMessage();
    objMessage.setObject(eMaster);
    queueSender.send(objMessage);

接收端:--

        Master em =null;
        Message message = queueReceiver.receive(1);
        if (message instanceof ObjectMessage
                && ((ObjectMessage) message).getObject() instanceof Master) {
            em = (Master) ((ObjectMessage) message).getObject();
            //use this and get list of xml file and iterate and process xml file by 
            //below link
        }

1 xml parsing link here

2 xml parsing link here

【讨论】:

  • @NihaSharma 你还需要xml处理逻辑吗?
  • 我想我也需要接收器的 XML 处理。我试过了,但似乎什么也没发生。
  • 你将如何处理 xml 文件,告诉我?我会做需要的。
  • 我必须阅读那个 XML 文件。 - 消息消息 = receiver.receive(); ObjectMessage objMessage = (ObjectMessage) 消息; xml 对应于“Company”类,因此我需要从 XML 中取出值并从中创建一个对象。希望你明白我需要什么!
猜你喜欢
  • 1970-01-01
  • 2012-06-06
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
相关资源
最近更新 更多