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-mongodb
和mongo-java-driver
包括在我的pom.xml
中。我有什么遗漏吗
# 1 楼答案
也许你错过了
spring-data-commons-core
jar# 2 楼答案
如果其他人遇到同样的问题,使用更新版本的
spring-data-mongodb
就可以解决问题。作为参考,当我遇到这个问题时,我有版本1.7.0.RELEASE
,并且更新到1.8.2.RELEASE
解决了它