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 丢失的原因。我的配置是:

我刚刚查看了代码,mongo 端点目前不支持 headers;我没有意识到这一点;欢迎在 GitHub 问题中提出新功能请求。

https://github.com/spring-projects/spring-integration/blob/47d7bf3fe2faa99f9b80cbecbc01541b9d7782d8/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandler.java#L118-L126

    @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);
    }