0

我将 java 对象分阶段传递给 mirth preprocessor,我想将这个 java 对象编组为 XML,因为我已经编写了用于编组的自定义 java 类,我将这个 java 类作为 jar 并部署在 Mirth 的自定义 lib 文件夹中。记录时传入的消息在 mirth 中显示 java 对象(@something 哈希码),但 mirth 正在将此对象转换为字符串。但我的要求是按原样获取对象,或者是否有任何方法可以将字符串表示的对象转换为实际的自定义 java 对象,我已将其传递给 mirth preprocessor。这是我为编组编写的 java 类。

  public class JAXBMarshalling {


    public  void marshallJavaObjectToXml(OrderDetails orderDetails) {
        JAXBContext jaxbContext;
        try {
            File file = new File(
                    "C:\\Program Files (x86)\\Mirth Connect\\conf\\xml\\xmlrepresentation.xml");
            jaxbContext = JAXBContext.newInstance(OrderDetails.class);
            Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
            // output pretty printed
            jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            jaxbMarshaller.marshal(orderDetails, file);
            jaxbMarshaller.marshal(orderDetails, System.out);
        } catch (JAXBException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
4

1 回答 1

0

不确定我是否完全理解你的问题。基本上有两种可能的情况——当你试图在通道内或通道之间传递对象时;当您尝试将对象作为消息的一部分传递到外部目标时。

在第一种情况下,您必须使用全局通道映射,因为其他两个映射被持久化到数据库中,因此 Mirth Connect 将它们转换为字符串。在第二种情况下,尝试使用 <![CDATA[ ... ]]> 通知解析器忽略哪个部分。

作为后续行动,我建议参考非官方 Mirth Connect 开发人员指南,其中都提到了这些场景。(免责声明:我是这本书的作者。)

于 2013-11-18T19:17:58.060 回答