如何从mule数据库连接器获取mule有效负载的值

时间:2016-08-25 11:26:17

标签: mule

请建议如何编写一个java类来读取mule有效负载并从中读取值并将它们分配给DTO,这样我就可以返回相同的内容。

             

如何使用数据库中的值发送回DTO,我在阅读有效负载或转换它时面临问题。

3 个答案:

答案 0 :(得分:1)

如果您使用的是企业版,则可以使用DataWeave将结果集转换为pojos。数据库连接器返回行的Hashmap的ArrayList。您可以遍历此列表并创建pojo,例如。 -

%dw 1.0
%output application/java
---
payload map {
({id: $.id,
name: $.name}) as :object {class:'com.my.PersonPojo'}
}

答案 1 :(得分:0)

您可以使用MEL映射语法从数据库读取有效负载,而不是使用java组件。 干杯!

答案 2 :(得分:0)

通过此

获取java中的有效负载
List<String> list = eventContext.getMessage().getPayload();

将其分配给列表并对其进行迭代并将其加载到list<DTOObject>

List<DTOObject> dtos = new ArrayList<DTOObject>();
for(String eachValue : list) {
   dto.setValue(eachValue);
   dtos.add(dto);
}
return dtos;

这会将列表dtos返回到有效负载,您可以在下一个组件中获取它们。 如果要从流中的任何位置获取它们,请将列表设置为java中的会话变量

eventContext.getMessage().setProperty("dtoList", dtos, PropertyScope.SESSION);

抓住sessionVars.dtolist来获取列表。迭代并获得每个值。