文档章节

spring-data-mongodb报错

Dreyer
 Dreyer
发布于 2016/01/27 19:28
字数 431
阅读 1460
收藏 2

今天在使用spring-data-mongodb进行mongo操作的时候遇到下面这个错误

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoTemplate' defined in class path resource [spring.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.data.mongodb.core.MongoTemplate]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd

at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:288)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1049)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:953)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)

at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:106)

at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:57)

at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100)

at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:248)

at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124)

at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148)

... 27 more


这是spring.xml文件的配置信息

<?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.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">


       <mongo:mongo id="mongo" replica-set="192.168.47.129:27017">

           <mongo:options

                   connections-per-host="8"

                   threads-allowed-to-block-for-connection-multiplier="3"

                   connect-timeout="10000"

                   max-wait-time="20000"

                   auto-connect-retry="true"

                   socket-keep-alive="true"

                   socket-timeout="1500"

                   write-number="1"

                   write-timeout="0"

                   write-fsync="true"/>

       </mongo:mongo>


       <!--mongo的连接工厂,dbname为连接的数据库名,没有则会自动创建一个,mongo-ref为关联的mongo实例 -->

       <mongo:db-factory dbname="users" mongo-ref="mongo"/>


       <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 -->

       <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">

              <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>

       </bean>


</beans>


测试类

package com.dreyer.springMongodb.customer;


import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


import java.util.List;



/**

 * @author Dreyer

 * @description

 * @email hy.dreyer@qq.com

 * @date 2016/1/13 15:10

 */

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = { "classpath:spring.xml","classpath:spring-mvc.xml" })

public class MainTest {

    @Autowired

    private MongoTemplate mongoTemplate;


    @Test

    public void test() {

        List<Customer> list = mongoTemplate.findAll(Customer.class);

        for (Customer customer : list) {

            System.out.println(customer.getFirstName());

        }

    }

}


spring-data-mongodb的版本为:1.8.2,spring的版本为:3.2.0

报错原因是因为spring-data-mongodb1.6以上的版本需要配置spring4.0以上

解决方案就是把spring版本改为4.1.6即可

© 著作权归作者所有

共有 人打赏支持
Dreyer
粉丝 7
博文 23
码字总数 13189
作品 0
广州
高级程序员
私信 提问
mongo duplicatekey 问题

现在生产上莫名其妙报错: java.lang.NoClassDefFoundError: com/mongodb/MongoException$DuplicateKey at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExcep......

hellotrms
2016/10/24
546
1
Spring Data MongoDB 1.6.4 发布

Spring Data MongoDB 1.6.4 发布,此版本更新内容如下: * DATAMONGO-1304 - Release 1.6.4 (Evans). 下载:https://github.com/spring-projects/spring-data-mongodb/archive/1.6.4.RELEAS......

淡漠悠然
2015/10/15
706
0
Spring Data MongoDB 1.8.0 发布

Spring Data MongoDB 1.8.0 发布,此版本更新内容如下: * DATAMONGO-1282 - Release 1.8 GA (Gosling). * DATAMONGO-1280 - Add what's new section to refrence documentation. * DATAMONG......

淡漠悠然
2015/09/04
2.2K
0
使用 Spring Data & MongoDB

这篇文章包含以下三个方面内容: 在 Windows 下安装 MongoDB MongoDB Java 示例 Spring Data & MongoDB. 首先,安装 MongoDB 从官方网站上下载最新的 MongoDB ,地址:MongoDB website. 解压...

红薯
2011/08/29
16.8K
10
Mongodb安装、简单使用及与spring的集成

Mongodb的下载网址是:httP://www.mongodb.org/display/DOCS/downloads 注:Mongodb支持32位和64位系统,在32位系统下,mongodb只能处理2GB的数据,这是因为mongodb使用内存映射文件存储引擎...

zmf
2015/06/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 做一只舔狗,开心时就去舔她,不开心时就舔自己

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @温家成 :分享连诗雅的单曲《水星逆行》 《水星逆行》- 连诗雅 手机党少年们想听歌,请使劲儿戳(这里) @罗马的王 :在家嫌猫吵,去书城看书...

小小编辑
30分钟前
20
3
Ruby中的继承、原型、面向对象、访问域

先有类还是先有对象 从鸡蛋悖论解决可以悟到一个道理,不要从常识上假设非此即彼和绝对静止。 Ruby中的类和对象正是这么个东西 我们创建一个类,那它就是Class这个对象的实例,而Class,于是...

可数局部基
今天
4
0
什么时候使用字节流、什么时候使用字符流,二者的区别

在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 InputStream 和OutputStream,...

watermelon11
今天
6
0
Alpakka Kafka,反应式Kafka客户端

Alpakka Kafka 是一个要用于 Java 和 Scala 语言的开源的流感知和反应式集成数据线项目。它建立在 Akka Stream之上,提供了 DSL 来支持反应式和流式编程,内置回压功能。Akka Streams 是 Re...

羊八井
今天
5
0
PHP7源码编译安装详解

$ yum groupinstall "development tools"$ yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype \freetype-devel libpng libpng-devel libxml2 ......

问题终结者
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部