【发布时间】:2015-04-23 16:06:42
【问题描述】:
我对@987654321@ 很陌生。我正在尝试集成一个IntegrationFlow,其端点是AmqpOutboundEndpoint:
return IntegrationFlows.from("ordersChannel")
.handle(Amqp.outboundAdapter(rabbitTemplate)
.exchangeName(exchangeName)
.routingKey(routingKey))
.get();
我的MessageGateway 使用我想要的有效负载创建org.springframework.messaging.support.GenericMessage 类型的实例:
@MessagingGateway
public interface OrderDispatchService {
@Gateway(requestChannel = "ordersChannel")
void sendOrder(final Order order);
}
我确实希望 outboundEndpoint 创建 amqp 消息,就像 RabbitMessagingTemplate 一样。 org.springframework.messaging.support.GenericMessage 看起来像 amqp 消息。
但是AmqpOutboundEndpoint 只是将AmqpTemplate 作为参数。我怎样才能做到这一点?任何转换原始消息的尝试都会失败,因为端点只是简单地解包消息并获取原始有效负载。也许我偏离了轨道?
更新:
我现在做了以下事情:
.enrichHeaders(s -> s.headerExpressions(h -> h
.put(AmqpHeaders.MESSAGE_ID, "headers.id.toString()")
.put(AmqpHeaders.TIMESTAMP, "new java.util.Date(headers.timestamp)")))
这会将原始 org.springframework.messaging.support.GenericMessage 标头的值复制到等效的 amqp 标头。
【问题讨论】:
标签: spring-integration spring-amqp