Spring 与 MongoDB 集成 Queues:自定义 Headers 丢失
Spring Integration with MongoDB Queues: Custom Headers Lost
我有一个 Spring 用于发送和接收消息的集成应用程序 to/from a MongoDB queue,除了消息 headers,它工作正常在我使用的发件人处:
Message<PolicyEvent> message = MessageBuilder
.withPayload(myPayload)
.setHeader("someHeader", "some value")
.build();
messageGateway.sendEventMessage(message);
当应用程序收到消息时,只有 headers 是默认值(id、spanId、时间等...)。
虽然我在网上搜索(文档、Whosebug 等),但一直无法弄清楚自定义 headers 丢失的原因。我的配置是:
- Spring-boot-2.2.3.RELEASE
- Mongodb 4.0.3 社区
- 所有配置(包括集成)都是Java注释(没有xml)。
我刚刚查看了代码,mongo 端点目前不支持 headers;我没有意识到这一点;欢迎在 GitHub 问题中提出新功能请求。
@Override
protected void handleMessageInternal(Message<?> message) {
Assert.isTrue(this.initialized, "This class is not yet initialized. Invoke its afterPropertiesSet() method");
String collectionName = this.collectionNameExpression.getValue(this.evaluationContext, message, String.class);
Assert.notNull(collectionName, "'collectionNameExpression' must not evaluate to null");
Object payload = message.getPayload();
this.mongoTemplate.save(payload, collectionName);
}
我有一个 Spring 用于发送和接收消息的集成应用程序 to/from a MongoDB queue,除了消息 headers,它工作正常在我使用的发件人处:
Message<PolicyEvent> message = MessageBuilder
.withPayload(myPayload)
.setHeader("someHeader", "some value")
.build();
messageGateway.sendEventMessage(message);
当应用程序收到消息时,只有 headers 是默认值(id、spanId、时间等...)。
虽然我在网上搜索(文档、Whosebug 等),但一直无法弄清楚自定义 headers 丢失的原因。我的配置是:
- Spring-boot-2.2.3.RELEASE
- Mongodb 4.0.3 社区
- 所有配置(包括集成)都是Java注释(没有xml)。
我刚刚查看了代码,mongo 端点目前不支持 headers;我没有意识到这一点;欢迎在 GitHub 问题中提出新功能请求。
@Override
protected void handleMessageInternal(Message<?> message) {
Assert.isTrue(this.initialized, "This class is not yet initialized. Invoke its afterPropertiesSet() method");
String collectionName = this.collectionNameExpression.getValue(this.evaluationContext, message, String.class);
Assert.notNull(collectionName, "'collectionNameExpression' must not evaluate to null");
Object payload = message.getPayload();
this.mongoTemplate.save(payload, collectionName);
}