通过REST接收XML数组到MULE ESB流程

时间:2013-09-26 08:15:29

标签: java xml arrays mule esb

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

我正在尝试通过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课程,但没有提出正确的。{/ p>

目前课程如下:

@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
}

我的流程看起来像:

Mule ESB flow

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

如果我将其他所有内容保持不变,但将我的消息减少到单个字段。然后它工作正常。

我的注释是否不正确?我是否遵循完全错误的方法?

1 个答案:

答案 0 :(得分:2)

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

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