首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mirth的预处理阶段将java对象编组成XML?

在Mirth的预处理阶段将java对象编组成XML?
EN

Stack Overflow用户
提问于 2013-08-02 15:10:45
回答 1查看 1.2K关注 0票数 0

Mirth从ActiveMQ JMS接收java对象,我在Mirth中将源连接器入站数据类型设置为分隔的文本,连接器类型是JMS 。现在,在preprocessor阶段,我想将这个java对象编组到XML.I中,我已经将这样的记录器放置在

代码语言:javascript
复制
logger.info("incoming data "+message);

它正在打印OrderDetails@240aaf81

现在,我调用自定义的java类将java对象封送到XML.But中,传入的消息由Mirth.Code在预处理器脚本中转换为字符串,如下所示:

代码语言:javascript
复制
// 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对象作为方法参数,但它作为字符串。方法如下所示:

代码语言:javascript
复制
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();
        }
    }

传递对象的类如下所示:

代码语言:javascript
复制
 @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.How文件夹中,可以在preprocessor脚本中获得实际的Mirth.How对象吗?我正在使用Mirth版本2.2.1.5861

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-08 23:11:15

这样的结果可以使用摘要选项卡上的附件脚本来实现。在那里,您可以处理原始格式的消息。您可以在那里提取对象并将其存储到,这也允许传递对象,这与其他两个映射相反。预处理器脚本也处理原始消息。这两者的区别在于,当消息到达附件处理程序时,它不会存储在数据库中,而是存储在附件处理程序之后。

作为进一步的阅读,我建议使用"http://mirthconnect.isarp.com/“。(免责声明:我是本书的作者。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18020363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档