有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SpringJavaMongoDB类NotFoundException:org。springframework。数据转换收集工厂

我试图获取集合中的所有文档,并将它们作为java对象添加到List中,但是当我运行findAll时,出现以下异常:

java.lang.ClassNotFoundException: org.springframework.data.convert.CollectionFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_65]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_65]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_65]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_65]
...

这是相关的错误日志:

2016-01-17 20:54:05.956 ERROR 87437 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/convert/CollectionFactory] with root cause

以下是导致异常的代码:

public List<TruckEntity> findAll() {

    MongoClient mongoClient = new MongoClient("localhost", 27017);
    MongoOperations mongo = new MongoTemplate(mongoClient, "trucksDb");

    List<TruckEntity> trucks = mongo.findAll(TruckEntity.class);

    return trucks;
}

List<TruckEntity> trucks = mongo.findAll(TruckEntity.class);是引发异常的地方

当我使用 FindIterable<Document> iterable = db.getCollection("restaurants").find(); 我可以使用迭代器访问文档,因此文档作为TruckEntity类存在,连接到MongoDB没有问题。只是因为缺少类,转换失败了

我的spring-data-mongodbmongo-java-driver包括在我的pom.xml中。我有什么遗漏吗


共 (2) 个答案

  1. # 1 楼答案

    也许你错过了spring-data-commons-corejar

  2. # 2 楼答案

    如果其他人遇到同样的问题,使用更新版本的spring-data-mongodb就可以解决问题。作为参考,当我遇到这个问题时,我有版本1.7.0.RELEASE,并且更新到1.8.2.RELEASE解决了它