我对spring-integration非常陌生。我正在尝试集成一个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能够像RabbitMessagingTemplate一样创建amqp消息。一条看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头中。
发布于 2015-04-23 16:57:15
不清楚您的意思是什么;RabbitMessagingTemplate执行与AmqpOutboundEndpoint类似的函数--将o.s.messaging.Message转换为RabbitMQ消息。
两人都在封面下使用RabbitTemplate。
RabbitMessagingTemplate针对的是使用Spring消息的人,而不是使用Spring的人。
如果你能确切地解释你的问题是什么,我们可以进一步帮助你。
https://stackoverflow.com/questions/29828869
复制相似问题