Spring integration 是否有用于通用消息的mongodb映射转换器

Spring integration 是否有用于通用消息的mongodb映射转换器,spring-integration,Spring Integration,是否存在用于通用消息的mongodb映射转换器。 无参数构造函数不适用于泛型消息 .11:47:30.937 [http-nio-9080-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exc

是否存在用于通用消息的mongodb映射转换器。 无参数构造函数不适用于泛型消息

.11:47:30.937 [http-nio-9080-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.messaging.MessageHandlingException: error occurred in message handler [messageHandler]; nested exception is org.springframework.data.mapping.model.MappingInstantiationException: Failed to instantiate org.springframework.messaging.support.GenericMessage using constructor NO_CONSTRUCTOR with arguments ] with root cause 
java.lang.NoSuchMethodException: org.springframework.messaging.support.GenericMessage.<init>()
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.getDeclaredConstructor(Class.java:2178)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104)
    at org.springframework.data.convert.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:61)
    at org.springframework.data.convert.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:83)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:251)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:231)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1186)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.access$200(MappingMongoConverter.java:78)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1134)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1097)

从版本
3.0
开始,建议使用
ConfigurableMongoDbMessageStore
,因为它提供了更多自定义选项,包括用于
消息的
转换器


现成的Spring集成提供了
MongoDbMessageBytesConverter
,自
4.2.10
以来,它已成为
public
,如果
ConfigurableMongoDbMessageStore
没有任何外部自定义,则默认情况下使用它。感谢您的回答,但MongoDbMessageBytesConverter不是映射MongoConverter。问题中添加了stacktrace此MongoDbMessageBytesConverter是否需要作为转换器使用,或者可以作为映射MongoConverterMappingContext mappingContext=new MongoMappingContext()绑定到mongodbfactory;MappingMongoConverter MappingMongoConverter=新的MappingMongoConverter(dbRefResolver,mappingContext);CustomConversions CustomConversions=新的CustomConversions(Arrays.asList(new MongoDbMessageBytesConverter());mappingMongoConverter.setCustomConversions(customConversions);mongoTemplate=新的mongoTemplate(mongoDbFactory、mappingMongoConverter);是的,最后一个是正确的。有关映射的更多信息,请查看SpringDataMongoDB
public MongoTemplate messagingMongoTemplate() throws Exception {
    MongoTemplate mongoTemplate=null;
    try {
        DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
        MappingContext mappingContext = new MongoMappingContext();

        MappingMongoConverter mappingMongoConverter = new MappingMongoConverter(dbRefResolver,mappingContext);

        CustomConversions customConversions = new CustomConversions(Arrays.asList(new MongoDbMessageBytesConverter()));
        mappingMongoConverter.setCustomConversions(customConversions);
        mongoTemplate=new MongoTemplate(mongoDbFactory,mappingMongoConverter);