2013-09-26 45 views
0

不知道我是否要走错路,但无论如何我都无法使其工作。通过REST将XML数组接收到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,但没有拿出正确的。

目前类看起来是这样的:

@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

当我运行此我得到的回声和记录仪的空消息(这只是记录消息有效载荷)我得到NullPayload。

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

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

回答

2

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

  • 创建你的消息的XSD,
  • 从其生成JAXB注释类,
  • 利润。