我将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();
}
}
}
答案 0 :(得分:0)
不确定我完全理解你的问题。基本上有两种可能的情况 - 当你试图在通道内或通道之间传递对象时;当您尝试将对象作为消息的一部分传递到外部目标时。
在第一种情况下,您必须使用全局通道映射,因为其他两个映射将持久保存到数据库,因此Mirth Connect会将它们转换为字符串。在第二种情况下,尝试使用<![CDATA [...]]>通知解析器要忽略的部分。
作为后续跟进,我建议Unofficial Mirth Connect Developer’s Guide提到这些情景。 (免责声明:我是本书的作者。)