Apache camel Apache Camel转换不工作
我有一条骆驼路线:Apache camel Apache Camel转换不工作,apache-camel,Apache Camel,我有一条骆驼路线: <route id="externalRestPushRoute"> <from uri="jms:pushProcessedRecordsToExternal" /> <setHeader headerName="PAYLOAD"> <simple>body</simple> </setHeader> <m
<route id="externalRestPushRoute">
<from uri="jms:pushProcessedRecordsToExternal" />
<setHeader headerName="PAYLOAD">
<simple>body</simple>
</setHeader>
<marshal ref="jack"></marshal>
<to uri="http://localhost/front/rest/karec/dummy-push"/>
<transform>
<simple>in.header[PAYLOAD]</simple>
</transform>
<to uri="bean:noAuthRecordPersistenceService?method=deliverySuccess" />
</route>
身体
in.报头[有效载荷]
这个想法是:
我想将一个JSON格式的对象传递给REST端点(所有的头都已正确设置,REST端点接收JSON格式)/
要将对象转换为JSON格式,我使用marshal,它可以工作。
现在,http端点返回的响应类型是java.io.InputStream,但我不在乎。
我关心的是在封送之前将主体转换回原始对象。
在封送一个名为PAYLOAD的头之前,我将对象保存在头中。
现在我想使用transform将其返回到消息体中。
嗯,这似乎不起作用。当它到达最后一个bean时,它抱怨body仍然是java.io.InputStream类型。将body存储在exchange属性上,而不是头,这样更安全
<setProperty propertyName="PAYLOAD">
<simple>body</simple>
</setProperty>
<transform>
<simple>${property.PAYLOAD}</simple>
</transform>
身体
${property.PAYLOAD}