我在调用时将消息正文解组为 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&durableSubscriptionName=sendSMSWhenResultIsCalculated" />
<marshal ref="json" />
<bean beanType="com.trumin.communications.sms.TimeResultSMSSender"
method="sendTextToUserAfterTimeResultBeingSaved(${body})" />
</camel:route>
</camelContext>
我在这里尝试调用的方法:
sendTextToUserAfterTimeResultBeingSaved(Result r);
接收以 json 数据格式定义的 Result 类型的参数,并且在传递消息时不会调用它。
如果我修改方法签名以接受字符串而不是结果:
sendTextToUserAfterTimeResultBeingSaved(String s);
然后它被调用并且字符串包含结果 json 表示。
有什么方法可以让我尝试实现的目标吗?
我还尝试从路由中删除 (${body}) 规范,我尝试过其他解组库,我尝试阅读所有骆驼教程和参数绑定链接,我已经阅读了大部分骆驼关于这个的行动章节,但仍然找不到我的答案。