我必须用Json格式在DeadLetterQueue中存储我的对象(CcRequest)。
怎么可能?
这是我的简单背景:
<camelContext id="el1DMRCamelContext" autoStartup="true" xmlns="http://camel.apache.org/schema/blueprint" >
<template id="producerTemplate" />
<!-- Routes -->
<route id="createCcProcessorRoute" errorHandlerRef="createCcErrorHandler" >
<from uri="activemq:queue:createCc" />
<process ref="createCcProcessor" />
</route>
</camelContext>
<bean id="createCcErrorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder" >
<property name="deadLetterUri" value="activemq:queue:createCcDLQ" />
<property name="redeliveryPolicy" ref="redeliveryPolicy" />
</bean>
我希望我的activemq:queue:createCcDLQ中的对象(CcRequest存放在交换体中)是json格式而不是二进制格式。
有可能吗?
答案 0 :(得分:2)
我不会将你想要做的事情归类为死信处理程序。死信通常只是移动/重新传递原始信息。
使用excetion子句非常简单。
<dataFormats>
<json id="jsonFormat" library="Jackson"/>
</dataFormats>
<onException>
<exception>java.lang.RuntimeException</exception>
<marshal ref="jsonFormat"/>
<to uri="activemq:queue:createCcDLQ"/>
</onException>