2013-07-23 18 views
1

我傳遞的java對象從JMS發送客戶端mirth.Java類是這樣的:將Java對象傳遞給Mirth中的JMS隊列?

public class OrderDetails implements Serializable{ 

    private static final long serialVersionUID = -4617153110762983450L; 
    private Long mrn; 
    private Long orderNo; 
    private Long patientId; 
    private Long orderId; 
    private Long encounterId; 

} 

JMS客戶端代碼如下所示:

public void sendMessage(final OrderDetails orderDetails) throws JMSException { 
     LOG.debug("Starting sendMessage of AMQMsgSenderService"); 
     jmsTemplate.send(new MessageCreator() { 
      public Message createMessage(Session session) throws JMSException { 
       LOG.info("SENDING: " + orderDetails); 
       ObjectMessage message = session.createObjectMessage(orderDetails); 
       return message; 
      } 
     }); 
     LOG.debug("Ending sendMessage of AMQMsgSenderService"); 
    } 

連接器類型的歡樂是JMS讀者 。我想在源代碼中接收java對象,並將其轉換爲XML或JavaScript對象。是否有可能在歡樂?我使用歡樂版本2.2.1.5861。

+0

您能工作嗎?我想要發送一個JMS ObjectMessage到目的地。 – KingAndrew

回答

0

我可能會建議可能的解決方案之一,它是在Mirth Connect v3.0下測試的。我希望它也能在v2.2下運行。基本上,您正在朝着正確的方向前進,可能的步驟是:

  • 在JMS發件人端,創建對象的實例並填充必填字段;
  • 序列化對象(例如使用org.apache.commons.lang3.SerializationUtils.serialize);
  • 然後對結果進行編碼(使用Mirth內置的Base64編碼器);
  • 將其傳遞給配置爲JMS發件人的目標連接器。

在接收器側執行相同以相反的順序:

  • 解碼接收到的原始消息(Base64編碼解碼器);
  • 將字節數組反序列化到對象中(使用org.apache.commons.lang3.SerializationUtils.deserialize);
  • 訪問對象的字段。

希望這有助於。

(PS,在上面詳細描述,與截圖和代碼段,對於所有的情況下,其中的步驟發送者和接收者是歡樂通道給出在「Unofficial Mirth Connect developer’s guide」 聲明:。我的這個筆者本書歡迎任何意見和建議。)