Настройка шаблона GridFS в spring-data для MongoDB

1

У меня проблемы с настройкой MongoDB в моем весеннем приложении (я использую Spring Data для mongo db). Вот часть конфигурации, которая отвечает за mongodb

<mongo:mongo host="localhost" port="27017"/>
<mongo:db-factory id="mongoDbFactory" dbname="yourdb" />

<mongo:mapping-converter id="converter" />

<bean name="gridFsTemplate" class="org.springframework.data.mongodb.gridfs.GridFsTemplate">
    <constructor-arg ref="mongoDbFactory" />
    <constructor-arg ref="converter" />
</bean>

Когда я запускаю приложение, я получаю следующий журнал:

Вызвано: org.springframework.beans.factory.BeanCreationException: Ошибка создания bean-компонента с именем "конвертер": не удалось выполнить активацию bean-компонента; Вложенное исключение - org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр класса bean [org.springframework.data.mongodb.core.convert.MappingMongoConverter]: конструктор сделал исключение; Вложенное исключение - java.lang.NoSuchMethodError: org.springframework.data.util.ClassTypeInformation.from(Ljava/lang/Class;) Lorg/springframework/data/util/TypeInformation; на org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:278) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] на org.springframework.beans.factory. support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1114) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java: 1017) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) ~ [spring-beans- 4.0.2.RELEASE.jar: 4.0.2.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(Abs [] [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] на org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~ [spring -beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) ~ [spring-beans-4.0.2.RELEASE. jar: 4.0.2.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] в org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:320) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE]... 93 общих фрейма пропущены Причина: org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр класса bean [org.springframework.data.mongodb.core.convert.MappingMongoConverter]: конструктор сделал исключение; Вложенное исключение - java.lang.NoSuchMethodError: org.springframework.data.util.ClassTypeInformation.from(Ljava/lang/Class;) Lorg/springframework/data/util/TypeInformation; на org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:164) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] на org.springframework.beans.factory.support.SimpleInstantiationStrategy. (SimpleInstantiationStrategy.java:125) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE] на org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:270) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE]... 102 общих фрейма пропущено Причинение: java.lang.NoSuchMethodError: org.springframework.data.util.ClassTypeInformation.from(Ljava/lang/Класс;) Lorg/springframework/данные /Util/TypeInformation; (org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper..convert.MappingMongoConverter. (MappingMongoConverter.java:110) ~ [spring-data-mongodb-1.4.2.RELEASE.jar: na] at org.springframework.data.mongodb.core.convert.MappingMongoConverter. (MappingMongoConverter.java: 126) ~ [spring-data-mongodb-1.4.2.RELEASE.jar: na] at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) ~ [na: 1.8.0_05] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java: 62) ~ [na: 1.8.0_05] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~ [na: 1.8.0_05] в java.lang.reflect.Constructor.newInstance(Constructor.java: 408) ~ [na: 1.8.0_05] at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) ~ [spring-beans-4.0.2.RELEASE.jar: 4.0.2.RELEASE].. 104 общих кадра опущены

Я предполагаю, что я должен добавить 'type-mapper-ref' в 'convert' bean, но я понятия не имею, какое значение я должен предоставить.

Этот пример имеет почти аналогичную конфигурацию: http://www.mkyong.com/mongodb/spring-data-mongodb-save-binary-file-gridfs-example/

Может быть, некоторые из вас, кто больше знаком с монгодбом, могут дать мне ответ?

Теги:
spring
spring-data
spring-data-mongodb

1 ответ

1
Лучший ответ

Изменена версия spring-data-mongodb от "1.5.0.RC" до "1.5.0.RELEASE" и версия Spring-data-commons от "1.8.0.RC1" до "1.8.0.RELEASE", и это исправлена проблема. Вероятно, api был изменен, и "NoSuchMethodError" больше не появляется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню