0

``mongoTemplate のインスタンス化中に次の例外が発生します

スレッド「メイン」の例外 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) at org.springframework.data.mongodb.core.MongoTemplate.(MongoTemplate.java:174) at com.adobe.ffc.controller.MongoDBTest.createData(MongoDBTest.java) :29) com.adobe.ffc.controller.MongoDBTest.main(MongoDBTest.java:24) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) で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 at java.net.URLClassLoader$1 .run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java: 354) で java.lang.ClassLoader.loadClass(ClassLoader.java:425) で sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) で java.lang.ClassLoader.loadClass(ClassLoader.java:358) で。 .. 10以上run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ) java.lang.ClassLoader.loadClass(ClassLoader.java:425) で sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) で java.lang.ClassLoader.loadClass(ClassLoader.java:358) .. . 10 以上run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ) java.lang.ClassLoader.loadClass(ClassLoader.java:425) で sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) で 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 の構成は次のとおりです。

     <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>
4

1 に答える 1

1

問題は、Spring Data Release Train を互いに混在させることです。

spring-data-mongodb 1.4現在使用している はAroraリリースの一部でしたが、Release Train Coddの一部であり、必要です。spring-data-commons 1.7spring-data-commons 1.5

したがって、 にダウングレードするか、spring-data-mongodb 1.2または にアップグレードしてspring-data-commons 1.7ください。また、依存関係を調べて、潜在的な競合を確認してください。

補足: spring data wikiページをチェックアウトして、特定のリリースに含まれているバージョンを確認できます。

于 2014-11-04T11:54:35.530 に答える