我正在尝试获取集合中的所有文档并将它们添加到 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-mongodb
和 mongo-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/