【问题标题】:Receiving an XML array over REST into MULE ESB flow通过 REST 将 XML 数组接收到 MULE ESB 流中
【发布时间】:2025-11-27 08:30:01
【问题描述】:

不确定我是否走错了路,但无论如何我无法让它工作。

我正在尝试通过 REST 端点将 XML 消息接收到 Mule 流中,然后将该 XML 转换为 POJO,以便我可以使用它进行处理。 XML 中可以有一个项目列表,类似于:

<?xml version="1.0" encoding="UTF-8"?>
<Commission>
    <commissionRecords>
        <commissionRecord>
            <entityNumber>
                768768
            </entityNumber> 
        <commissionRecord>
        <commissionRecord>
            <entityNumber>
                127698
            </entityNumber> 
        <commissionRecord>
    </commissionRecords>
</Commission>

我已经成功地接收到一个只有一个值的简单类,但到目前为止,每当我发送一个数组时,我什么都没有收到。我一直在课堂上玩javax.xml.annotations,但没有找到正确的。

目前的课程如下所示:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Commission {
 @XmlElement(name="commissionRecord")
 protected CommissionRecord[] commissionRecords;

 //public getter and setters without annotations
}

@XmlAccessorType(XmlAccessType.FIELD)
public class CommissionRecord {
 protected int entityNumber;

 //public getter and setters without annotations
}

我的流程看起来像:

当我运行它时,我在 Echo 和 Logger(它只记录消息负载)中收到一条空消息,我得到 NullPayload。

如果我保持其他所有内容不变,但将我的信息减少到一个字段。然后就可以正常使用了。

我的注释不正确吗?我是不是走错了方法?

【问题讨论】:

    标签: java xml arrays mule esb


    【解决方案1】:

    首先转到架构,而不是尝试手动调整 JAXB 注释的类以提交。

    • 为您的消息创建一个 XSD,
    • 从中生成带有 JAXB 注释的类,
    • 利润。

    【讨论】: