1

我将 java 对象从 JMS 发送方客户端传递给 mirth.Java 类如下所示:

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");
    }

Mirth 中的连接器类型是JMS Reader。我想在源中接收java 对象并转换为XML 或 JavaScript Object。Mirth 有可能吗?我使用的是 Mirth 版本 2.2.1.5861。

4

1 回答 1

1

我可能会建议一种可能的解决方案,它在 Mirth Connect v3.0 下进行了测试。我希望它也应该在 v2.2 下工作。基本上,您正朝着正确的方向前进,可能要完成的步骤是:

  • 在 JMS Sender 端,创建对象实例并填充所需字段;
  • 序列化对象(例如使用 org.apache.commons.lang3.SerializationUtils.serialize);
  • 然后对结果进行编码(使用 Mirth 内置的 Base64 编码器);
  • 将此传递给配置为 JMS 发送器的目标连接器。

在接收端以相反的顺序执行相同的操作:

  • 解码接收到的原始消息(Base64 解码器);
  • 将字节数组反序列化为对象(使用 org.apache.commons.lang3.SerializationUtils.deserialize);
  • 访问对象的字段。

希望这可以帮助。

(Ps. 上面详细描述的所有步骤,带有屏幕截图和代码片段,对于发送者和接收者都是 Mirth 频道的情况,在“<a href="http://mirthconnect.shamilpublishing.com" rel= “nofollow">非官方 Mirth Connect 开发者指南”。免责声明:我是本书的作者,欢迎提出任何意见或建议。)

于 2013-12-09T18:47:08.033 回答