2012-11-07 111 views
1

Oracle Docs說 -如何使用TextMessage將XML文件發送到JMS隊列?

TextMessage對象用於發送包含java.lang.String的消息。它從Message接口繼承並添加一個文本消息體。 此消息類型可用於傳輸基於文本的消息,包括具有XML>內容的消息。

這怎麼可能? XML的內容是否只能發送(通過將其轉換爲Object然後發送)? XML文件能否以任何方式真正放在隊列中,然後在接收端讀取?

+0

您可以將xml文件作爲File對象或解析對象(通過SAX等)發送或者以字符串的形式讀取所有xml數據併發送。 – sunleo

+0

我知道第二部分(讀取所有xml數據作爲字符串併發送)。你能幫我解決第一個問題嗎?或者可以這樣做 - 編寫一個XML(或任何文件)並放入隊列中,然後接收器讀取XML(文件)並處理它? –

回答

3

請使用和對象發送必須是可序列化

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

+0

@NihaSharma你還需要xml處理邏輯嗎? – sunleo

+0

我想我也需要接收器的XML處理。我嘗試過,但似乎沒有發生。 –

+0

你會用xml文件做什麼,告訴我?我會做必要的。 – sunleo

相關問題