使用morphia报错

项目中在使用morphia的find命令的时候出现如下错误

Exception in thread "pool-1-thread-3" java.lang.NoClassDefFoundError: com/mongodb/client/model/DBCollectionFindOptions
        at org.mongodb.morphia.query.FindOptions.(FindOptions.java:36)
        at org.mongodb.morphia.query.QueryImpl.getOptions(QueryImpl.java:57)
        at org.mongodb.morphia.query.QueryImpl.(QueryImpl.java:81)
        at org.mongodb.morphia.query.DefaultQueryFactory.createQuery(DefaultQueryFactory.java:15)
        at org.mongodb.morphia.query.AbstractQueryFactory.createQuery(AbstractQueryFactory.java:13)
        at org.mongodb.morphia.DatastoreImpl.newQuery(DatastoreImpl.java:1396)
        at org.mongodb.morphia.DatastoreImpl.createQuery(DatastoreImpl.java:155)
        at org.mongodb.morphia.DatastoreImpl.find(DatastoreImpl.java:310)
        at com.hjc.herol.manager.player.PlayerMgr.createRole(PlayerMgr.java:53)
        at com.hjc.herol.core.Router.route(Router.java:97)
        at com.hjc.herol.net.http.HttpInHandlerImp.postHandle(HttpInHandlerImp.java:77)
        at com.hjc.herol.net.http.HttpInHandlerImp.access$100(HttpInHandlerImp.java:39)
        at com.hjc.herol.net.http.HttpInHandlerImp$1.run(HttpInHandlerImp.java:55)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.mongodb.client.model.DBCollectionFindOptions
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1945)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1788)

错误很明显指出是不存在某个类。然后我联系到项目是使用maven进行管理的,而且mongo-java-driver也一直在更新而且版本之间的差异都很大,是不是mongo-java-driver的版本和morphia的版本不对应导致。于是我就把mongo-java-driver的版本和morphia的版本都用同一时间发布的版本(都是2016 nov),配置如下


            org.mongodb
            mongo-java-driver
            3.4.0
        

        
            org.mongodb.morphia
            morphia
            1.3.0
        
 

然后就好了,哈哈,看来我的想法是对。所以有时候针对这些类找不到的错误,有可能是版本的问题,可以通过更新版本来解决。

你可能感兴趣的:(java,morphia)