Java MongoDB 类 NotFoundException : org. springframework.data.convert.CollectionFactory

标签 java spring mongodb maven

我正在尝试获取集合中的所有文档并将它们添加到 List作为 java 对象,但是当我运行 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 .有什么我想念的吗?

最佳答案

以防其他人遇到同样的问题,使用较新版本的 spring-data-mongodb 就可以解决问题。作为引用,当我遇到问题并更新到 1.8.2.RELEASE 时,我使用的是 1.7.0.RELEASE 版本。

关于Java MongoDB 类 NotFoundException : org. springframework.data.convert.CollectionFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34848226/

相关文章:

java - Play 在类路径上找不到 play.db.DBModule

java - 无法使用 HtmlUnit 2.35.0 登录网站

java - 我应该为负责在文件系统上持久保存数据的 bean 使用 @Repository Spring 注释吗?

java - spring boot starter web @ControllerAdvice 注释在没有@RestController 注释的情况下不起作用

mongodb - 调用 Find mgo 时参数过多

mongodb - 无法在 Beaglebone Green 上安装 MongoDB

java - 如何在java中用 "\"替换 "\\"

java - Spring Java Config 和@EnableTransactionManagement 的问题

java - Spring Boot WhiteLabel错误页面,怎么办?

java - GWT 中的多个 "pages"具有人类友好的 URL