无法使用Spring数据MongoDB的MongoTemplate插入数据

时间:2014-11-04 07:01:17

标签: mongodb maven spring-data spring-data-mongodb spring-data-commons

``我在实例化mongoTemplate

时遇到以下异常

线程中的异常" main" java.lang.NoClassDefFoundError:org / springframework / data / mapping / model / FieldNamingStrategy     在org.springframework.data.mongodb.core.MongoTemplate.getDefaultMongoConverter(MongoTemplate.java:1962)     在org.springframework.data.mongodb.core.MongoTemplate。(MongoTemplate.java:210)     在org.springframework.data.mongodb.core.MongoTemplate。(MongoTemplate.java:174)     在com.adobe.ffc.controller.MongoDBTest.createData(MongoDBTest.java:29)     在com.adobe.ffc.controller.MongoDBTest.main(MongoDBTest.java:24)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:606)     在com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) 引起:java.lang.ClassNotFoundException:org.springframework.data.mapping.model.FieldNamingStrategy     在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)     在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)     at java.security.AccessController.doPrivileged(Native Method)     在java.net.URLClassLoader.findClass(URLClassLoader.java:354)     at java.lang.ClassLoader.loadClass(ClassLoader.java:425)     at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)     at java.lang.ClassLoader.loadClass(ClassLoader.java:358)     ......还有10个

流程以退出代码1结束 错误来自以下代码中的第1行:

 MongoOperations mongoOps = new MongoTemplate(new Mongo(),"database");

        User user = new User();
        user.setId("200");
        user.setFullName("Mongo Template");
        user.setStatus("A");
        user.setAge("29");

        mongoOps.insert(user);

pom configration如下:

     <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>2.11.4</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.4.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>1.5.0.RELEASE</version>
    </dependency>

1 个答案:

答案 0 :(得分:1)

问题在于将Spring Data Release Trains相互混合。

spring-data-mongodb 1.4是发布培训Codd的一部分,需要spring-data-commons 1.7,而您当前正在使用的spring-data-commons 1.5Arora的一部分释放。

因此要么降级到spring-data-mongodb 1.2要么升级到spring-data-commons 1.7。也许还要查看您的依赖项并检查潜在的冲突。

旁注:您可以删除spring data wiki页面以查看哪些版本已成为特定版本的一部分。