当前位置: 首页 > 知识库问答 >
问题:

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

秦承安
2023-03-14

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

原因:org。springframework。豆。工厂BeanCreationException:创建名为“com”的bean时出错。实例util。财产。ServletContext资源[/WEB-INF/properties context.xml]中定义的MongoProperties配置#7dc57a65]:在设置构造函数参数时无法解析对bean“mongoTemplateReplicaSet”的引用;嵌套的异常是org。springframework。豆。工厂BeanCreationException:创建名为“mongoTemplateReplicaSet”的bean时出错,该bean在ServletContext资源[/WEB-INF/mongo context.xml]中定义:初始化bean失败;嵌套的异常是org。springframework。豆。工厂BeanCreationException:创建名为“xxxxxx”的bean时出错:bean的实例化失败;嵌套的异常是org。springframework。豆。BeanInstationException:未能实例化[org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean]:未找到默认构造函数;嵌套的例外是java。lang.NoSuchMethodException:org。springframework。数据mongodb。存储库。支持MongoRepositoryFactoryBean。()在org。springframework。豆。工厂支持BeanDefinitionValueResolver。resolveReference(BeanDefinitionValueResolver.java:359)位于org。springframework。豆。工厂支持BeanDefinitionValueResolver。ResolveValueIfEssential(beandDefinitionValueResolver.java:108)位于org。springframework。豆。工厂支持构造器解决方案。在org上解析ConstructorArguments(ConstructorResolver.java:648)。springframework。豆。工厂支持构造器解决方案。org上的autowireConstructor(ConstructorResolver.java:145)。springframework。豆。工厂支持AbstractAutoWireAbleBeanFactory。autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193)位于org。springframework。豆。工厂支持AbstractAutoWireAbleBeanFactory。在org上创建BeanInstance(AbstractAutowireCapableBeanFactory.java:1095)。springframework。豆。工厂支持AbstractAutoWireAbleBeanFactory。org上的doCreateBean(AbstractAutowireCapableBeanFactory.java:513)。springframework。豆。工厂支持AbstractAutoWireAbleBeanFactory。在org上创建Bean(AbstractAutowireCapableBeanFactory.java:483)。springframework。豆。工厂支持BeanDefinitionValueResolver。resolveInnerBean(BeanDefinitionValueResolver.java:299)。。。还有68个

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

这是我的spring 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。发行版和java mongo驱动程序3.3.0

共有2个答案

严高峻
2023-03-14

我设法解决了这个问题,也改变了Spring数据共享的版本。

以下是我使用的版本:
spring:4.3.6。发布,spring数据共享:1.13.0。发布,spring data mongodb:1.10.11。释放

冯永长
2023-03-14

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

 类似资料:
  • 我试图通过更新apache-tomcat-8.0.39\conf\catalina.properties在带有选项strict_servlet_compliance=true的Tomcat 8.0.39上部署一个应用程序,但一旦我这样做,我的应用程序部署就失败了。也就是说,我开始出现错误:SEVERE[localhost-startStop-1]org.apache.tomcat.util.dig

  • 我的android应用程序没有正确构建和部署。当启动一个新实例时,它会将我的应用程序启动到我的物理移动设备上,并且我能够在Visual Studio中进行调试。但现在它不会将应用程序启动到移动设备,而且当我手动运行应用程序时,它也不会在Visual Studio中调试。这个项目有可移植的类,并且正在使用Xamarin.Forms。 我确实更改了对AndroidManifest.xml的构建操作。

  • 部署spring MVC应用程序时,我有 详细信息:-eclipse Indigo Service Release2(面向Java EE开发人员的eclipse IDE)-“M2E-Maven Integration for eclipse”-“M2E-WTP-Maven Integration for WTP”我确认我的web项目在部署程序集中添加了“Maven依赖项”。我试着做一些清理,比如“

  • 我最近试图在cloud foundry上部署一个Grails项目,但在执行“Grails cf-push”时出现了以下错误 对于“grails cf-push--stacktrace”: 就在几个月前,一切都很顺利,但我不得不在一段时间内停止这个项目的工作。当我回到it领域时,我意识到再也不可能像以前那样部署它了。 我假设我需要升级我的云铸造插件,所以在一天的工作中,我升级了整个Groovy/Gr

  • Requirements 运行一个Spark Streaming应用程序,有下面一些步骤 有管理器的集群-这是任何Spark应用程序都需要的需求,详见部署指南 将应用程序打为jar包-你必须编译你的应用程序为jar包。如果你用spark-submit启动应用程序,你不需要将Spark和Spark Streaming打包进这个jar包。 如果你的应用程序用到了高级源(如kafka,flume),你需

  • 我试图在NetBeans中构建一个可以部署到用户和最终用户的应用程序。我对部署项目还是相当陌生的,这是迄今为止我做过的最复杂的一个,所以请容忍我。我目前在NetBeans中有一个工作应用程序,它利用JDK15和JavaFX15。只要我在NetBeans内部运行,一切都会按预期运行。我已经到了我想确保我可以在NetBeans之外发布这个应用程序的地步。为此,我进行了一些搜索,找到了以下教程。 htt