Java Object在Mirth的预处理器中转换为String?

时间:2013-08-02 13:10:03

标签: java xml marshalling mirth

我将java对象传递到preprocessor阶段的欢乐中,我想将这个java对象编组为XML,因为我已经为编组编写了自定义java类,我将这个java类作为一个jar并部署在欢乐的自定义lib文件夹。记录显示java对象(@something哈希代码)时传入的消息在欢乐但是欢乐中将此对象转换为String。但我的要求是获取对象,或者是否有任何方法将String表示的对象转换为实际的自定义java对象,我已经在preprocessor阶段传递给了mirth。这是我为编组编写的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();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

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

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

作为后续跟进,我建议Unofficial Mirth Connect Developer’s Guide提到这些情景。 (免责声明:我是本书的作者。)