2016-11-12 75 views
-1

是否有用于通用消息的mongodb映射转换器? 没有参数构造函数不适用于通用消息。是否有用于通用消息的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 的下列配置请告知,如果有3.0版本开始,建议使用ConfigurableMongoDbMessageStore为提供更多定制选项,包括一个ConverterMessage正确

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

出的即装即用Spring集成提供MongoDbMessageBytesConverter,因为4.2.10这已成为public并使用默认如果没有任何外部定制为ConfigurableMongoDbMessageStore

+0

感谢您的回应,但MongoDbMessageBytesConverter不是MappingMongoConverter。 – Adilmo

+0

在问题中增加了stacktrace – Adilmo

+0

这个MongoDbMessageBytesConverter是否需要用作变换器或者这可以绑定到mongodbfactory作为映射和变换器 – Adilmo