2

我必须将我的对象(CcRequest)存储在 Json 格式的 DeadLetterQueue 中。

怎么可能?

这是我的简单上下文:

<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 格式而不是二进制文件。

是否可以 ?

4

1 回答 1

2

我不会将您想做的事情归类为死信处理程序。死信通常只是原始消息的移动/重新传递。

改用 excetion 子句非常简单。

<dataFormats>
    <json id="jsonFormat" library="Jackson"/>
</dataFormats>


<onException>
  <exception>java.lang.RuntimeException</exception>
  <marshal ref="jsonFormat"/>
  <to uri="activemq:queue:createCcDLQ"/>
</onException>

骆驼例外条款文档

骆驼 JSON 文档

于 2013-01-18T12:01:23.080 回答