#spring #mongodb
#весна #mongodb
Вопрос:
При настройке базы данных Mongo с помощью Spring MVC (5.2.9.RELEASE) и развертывании ее в Tomcat 9.5 в качестве WAR-файла я получаю следующую ошибку:
Below is the stacktrace:
Many thanks, I was able to resolve that, but now it is showing me error Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.mongodb.core.convert.MappingMongoConverter]: Constructor threw exception; nested exception is java.lang.NoSuchFieldError: DEFAULT with the pom entry:<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.7</version>
</dependency>
<!-- Spring data mongodb -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
Ниже приведена моя конфигурация:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
<mongo:mongo-client id="mongoClient" host="127.0.0.1" port="27017" />
<mongo:db-factory id="mongoDbFactory" dbname="mydocs" mongo-ref="mongoClient"/>
<!-- <mongo:db-factory id="mongoDbFactory" host="127.0.0.1" port="27017" dbname="mydocs" username="" password=""/> -->
<mongo:mapping-converter id="converter" db-factory-ref="mongoDbFactory"/>
<bean name="gridFsTemplate"
class="org.springframework.data.mongodb.gridfs.GridFsTemplate">
<constructor-arg ref="mongoDbFactory" />
<constructor-arg ref="converter" />
</bean>
И я использую зависимость mongodb следующим образом:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.7</version>
</dependency>
<!-- Spring data mongodb -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
Пожалуйста, посоветуйте, как решить проблему
Комментарии:
1. Состояния сообщения об ошибке
mongo-ref
не допускаются в<mongo:db-factory>
2. Использовать
<mongo:db-factory mongo-client-ref="…" />
вместо этого, посколькуmongo-ref
был заменен в 3.x
Ответ №1:
В сообщении об ошибке указано, что mongo-ref не разрешен в mongo: db-factory. Поэтому используйте <mongo:db-factory mongo-client-ref="…" />
вместо этого, поскольку mongo-ref
он был заменен в 3.x. Подробнее см. в разделе Удаленные элементы и атрибуты пространства имен XML
Комментарии:
1. Большое спасибо, я смог это решить, но теперь он показывает мне ошибку, вызванную: org.springframework.beans. Исключение BeanInstantiationException: не удалось создать экземпляр [org.springframework.data.mongodb.core.convert.MappingMongoConverter]: конструктор вызвал исключение; вложенным исключением является java.lang. Ошибка NoSuchFieldError: ПО УМОЛЧАНИЮ