是否存在用于通用消息的mongodb映射转换器

时间:2016-11-12 10:08:59

标签: 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 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)

此外,我正在尝试跟随mongotemplate的配置 请告知是否正确

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

1 个答案:

答案 0 :(得分:1)

从版本3.0开始,建议使用ConfigurableMongoDbMessageStore,因为它提供了更多自定义选项,包括Converter Message

开箱即用的Spring Integration提供MongoDbMessageBytesConverter,自public以来已成为4.2.10,如果{{1}没有任何外部自定义,则默认使用ConfigurableMongoDbMessageStore }}