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>

Camel 例外条項ドキュメント

キャメルの JSON ドキュメント

于 2013-01-18T12:01:23.080 に答える