无法使用spring-data-mongodb 1.10.0部署应用程序

问题描述 投票:0回答:2

我正在尝试从spring-data-mongo 1.9.5迁移到1.10.0以便在Query类中使用noCursorTimeout()方法,但是我在尝试部署应用程序时遇到错误:

引起:org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/properties-context.xml]中定义的名称为'com.example.util.properties.MongoPropertiesConfiguration#7dc57a65'的bean创建错误:无法解析设置构造函数参数时引用bean'mongoTemplateReplicaSet';嵌套异常是org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/mongo-context.xml]中定义了名为'mongoTemplateReplicaSet'的bean创建错误:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'xxxxxx'的bean时出错:bean的实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean]:找不到默认构造函数;嵌套异常是org.springframework上的org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)中的java.lang.NoSuchMethodException:org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean。()位于org.springframework.beans.factory.support.ConstructorResolver的org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:648)中的.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) oraut.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory。 )org.springframework.beans.factory.support.AbstractAutowireCapableBeanF org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java)中的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)中的actory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513): 299)......还有68个

似乎MongoRepositoryFactoryBean不再具有默认构造函数。

这是我的春天mongo配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   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-4.3.xsd
   http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.10.xsd">

<bean id="mongoServer" class="com.mongodb.ServerAddress">
    <constructor-arg type="java.lang.String" name="host" value="localhost"/>
    <constructor-arg type="int" name="port" value="27017"/>
</bean>
<bean id="mongoServerList" class="java.util.ArrayList">
    <constructor-arg>
        <list>
            <ref bean="mongoServer"/>
        </list>
    </constructor-arg>
</bean>
<bean id="mongoCredential" class="com.mongodb.MongoCredential">
    <constructor-arg name="mechanism" value="#{T(com.mongodb.AuthenticationMechanism).SCRAM_SHA_1}"/>
    <constructor-arg type="java.lang.String" name="userName" value="user"/>
    <constructor-arg type="java.lang.String" name="source" value="myDB"/>
    <constructor-arg type="char[]" name="password" value="xxxxx"/>
</bean>
<bean id="mongoCredentialList" class="java.util.ArrayList">
    <constructor-arg>
        <list>
            <ref bean="mongoCredential"/>
        </list>
    </constructor-arg>
</bean>
<!-- MongoClient -->
<bean id="mongoClient" class="com.mongodb.MongoClient">
    <constructor-arg ref="mongoServerList"/>
    <constructor-arg ref="mongoCredentialList"/>
</bean>
<!-- MongoDbFactory -->
<bean id="mongoDbFactory" class="org.springframework.data.mongodb.core.SimpleMongoDbFactory">
    <constructor-arg name="mongo" ref="mongoClient"/>
    <constructor-arg name="databaseName" value="myDb"/>
</bean>
<bean id="mappingContext"
      class="org.springframework.data.mongodb.core.mapping.MongoMappingContext"/>
<bean id="typeInformationMapper" class="com.example.util.typemapper.AnnotationTypeInformationMapper">
    <constructor-arg name="basePackagesToScan">
        <list>

            <value>com.example.entity</value>
        </list>
    </constructor-arg>
</bean>
<bean id="defaultMongoTypeMapper"
      class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
    <constructor-arg name="typeKey" value=
        "_class" />
    <constructor-arg name="mappers" >
        <list>
            <ref bean="typeInformationMapper" />
        </list>
    </constructor-arg>
</bean>
<bean id="mappingMongoConverter"
      class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
    <constructor-arg name="mappingContext" ref="mappingContext"/>
    <property name="typeMapper" ref="defaultMongoTypeMapper"/>
</bean>
<!-- MongoTemplate -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate" primary="true">
    <property name="writeResultChecking" value="EXCEPTION"/>
    <property name="writeConcernResolver" ref="writeConcernResolver"/>
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
    <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
</bean>
<bean id="mongoTemplateReplicaSet" class="org.springframework.data.mongodb.core.MongoTemplate" primary="false">
    <property name="writeResultChecking" value="EXCEPTION"/>
    <property name="writeConcernResolver" ref="writeConcernResolver"/>
    <property name="readPreference" ref="readPreferenceSecondary"/>
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
</bean>

<bean id="writeConcernResolver" class="com.example.MyWriteConcernResolver">

</bean>

<bean id="readPreferenceSecondary" class="com.mongodb.TaggableReadPreference.SecondaryPreferredReadPreference"/>

<mongo:repositories base-package="my.repository.package.*"/>

我正在使用Spring 4.3.6.RELEASE和java-mongo-driver 3.3.0

java spring mongodb spring-data-mongodb
2个回答
0
投票

尝试使用Spring-Data-mongo 1.10.12而不是1.10.0。并将mongo-java驱动程序更新为3.4.0


0
投票

我设法解决了这个问题,也改变了spring-data-commons的版本。

这些是我使用的版本: 春天:4.3.6.RELEASE, spring-data-commons:1.13.0.RELEASE, spring-data-mongodb:1.10.11.RELEASE

© www.soinside.com 2019 - 2024. All rights reserved.