camel将json解组为bean方法的参数

时间:2016-02-02 13:01:00

标签: apache-camel unmarshalling parameterbinding

我正在非常糟糕的时间在调用时将消息正文解组为pojo。

我有一个非常简单的路线被定义为将身体解组到我的自定义pojo中:

    <dataFormats>
        <json id="json" library="Jackson" unmarshalTypeName="com.trumin.domain.model.result.Result" />
    </dataFormats>


    <camel:route>
        <camel:from
            uri="activemq:topic:result?clientId=sswric_01&amp;durableSubscriptionName=sendSMSWhenResultIsCalculated" />
        <marshal ref="json" />
        <bean beanType="com.trumin.communications.sms.TimeResultSMSSender"
            method="sendTextToUserAfterTimeResultBeingSaved(${body})" />
    </camel:route>
</camelContext>

我试图在这里调用的方法:

sendTextToUserAfterTimeResultBeingSaved(Result r);

接收以json数据格式定义的Result类型的参数,并且在传递消息时不会调用它。

如果我修改方法签名以接受String而不是Result:

sendTextToUserAfterTimeResultBeingSaved(String s);

然后调用它,字符串包含结果json表示。

我试图实现的目标是否有任何作用?

我也尝试从路径中删除($ {body})规范,我尝试过其他unmarshal库,我已经尝试阅读所有的camel教程和参数绑定的链接,我已经阅读了大部分内容关于这一点的骆驼在行动章节中但仍无法找到我的答案。

1 个答案:

答案 0 :(得分:0)

最后......修好了它:

{{1}}