我希望有人能解释一下如何配置 Camel 来编组和解组数据。我有一个调用 bean 以确定收件人列表的路由。这是基于消息的内容(protobuf)。
路线配置如下所示:-
<route id="Splitter">
<from uri="activemq:notification.splitter" />
<unmarshal ref="notificationProto" />
<recipientList>
<method bean="NotificationSplitter" method="splitNotification" />
</recipientList>
</route>
bean 工作正常,但下游路由抱怨:-
org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Unable to find proto buffer class
下游路由与上面的路由具有完全相同的 protobuf dataFormat 配置。如果我直接路由到下游队列(即绕过 bean 并对“to”队列进行硬编码),这意味着我也可以跳过解组步骤,它工作正常。
我想我需要在 Camel 将消息放入目标队列之前重新编组数据,但我不知道如何在 XML 中配置它。我试过简单地添加......
<marshal ref="notificationProto" />
...在确定了 recipientList 但它没有这样做之后(我假设因为 Camel 到那时已经发送了消息)。
另一种方法可能是从 bean 中进行解组,因为这样交换上的数据可能会保持不变。我不太确定该怎么做。它会起作用吗?
感谢您的任何提示。
J。