Spring MVC — 5.2.9.ВЫПУСК с помощью Mongo (spring-data-mongodb — 3.0.4.RELEASE) не работает

#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: ПО УМОЛЧАНИЮ