Mirth 正在从 ActiveMQ JMS Topic 接收 java 对象。我已将源连接器入站数据类型设置为Mirth Channel中的Delimited Text ,连接器类型为JMS Reader。现在在preprocessor
阶段我想把这个java对象编组到XML中。我已经把记录器像这样
logger.info("incoming data "+message);
它正在打印OrderDetails@240aaf81
现在我正在调用自定义 java 类来将 java 对象编组为 XML。但是这个传入的消息被 Mirth 转换为字符串。预处理器脚本中的代码如下所示:
// Modify the message variable below to pre process data
logger.info("incoming data "+message);
var object = new Packages.coms.controller.JAXBMarshalling();
object.marshallJavaObjectToXml(message);
return message;
在将传入消息传递给方法时,它显示方法不存在的错误,因为方法需要自定义 java 对象作为方法参数,但它作为字符串。方法如下所示:
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();
}
}
传递对象的类如下所示:
@XmlRootElement
public class OrderDetails implements Serializable{
private static final long serialVersionUID = -4617153110762983450L;
private Long mrn;
private Long orderNo;
private Long patientId;
private Long orderId;**strong text**
private Long encounterId;
}
我已经用这两个类创建了 jar 文件并将其放入 Mirth 的custom-lib文件夹中。如何在 Mirth 的脚本中获取实际的 java 对象preprocessor
?我正在使用 Mirth 版本 2.2.1.5861