如何在我的grails项目中检查mongodb / hibernate插件的依赖性

时间:2014-05-15 09:09:38

标签: hibernate mongodb grails

最近我使用sql作为主数据库的grails项目。现在,他们想要使用sql数据库和mongodb一样。不幸的是,当我添加mongodb插件时,该项目不再适用。

我用简单的项目测试过,添加mongodb插件就可以了。

在我看来,其他插件和mongodb之间存在一些冲突。那么,我该如何验证这些依赖性问题呢?

我正在使用grails 2.3.7并尝试使用mongodb 3.0.1 编译没有错误,但运行时出现问题。以下是详细信息:

Error Details
Error 500: 
Servlet: gsp
URI: /
Exception Message: grails.orm.HibernateCriteriaBuilder.or(Lgroovy/lang/Closure;)Lorg/grails/datastore/mapping/query/api/Criteria; 
Caused by: Executing action [index] of controller [com.finensemble.IndexController] caused exception: Runtime error executing action 
Class: IndexController 
At Line: [54] 
Code Snippet:
Stack Trace
org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Executing action [index] of controller [com.finensemble.IndexController]  caused exception: Runtime error executing action

    at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:200)

    at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)

    at com.linkedin.grails.profiler.ProfilerFilter.doFilterInternal(ProfilerFilter.java:82)

    at org.apache.shiro.grails.SavedRequestFilter.doFilter(SavedRequestFilter.java:55)

    at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)

    at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)

    at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)

    at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)

    at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:380)

    at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)

    at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:745)

Caused by: org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Runtime error executing action

    ... 14 more

Caused by: java.lang.reflect.InvocationTargetException

    ... 14 more

Caused by: java.lang.AbstractMethodError: grails.orm.HibernateCriteriaBuilder.or(Lgroovy/lang/Closure;)Lorg/grails/datastore/mapping/query/api/Criteria;

    at com.finansemble.finStore.SaleService$_getActiveSales_closure1.doCall(SaleService.groovy:17)

    at grails.orm.HibernateCriteriaBuilder.invokeClosureNode(HibernateCriteriaBuilder.java:1854)

    at grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:1553)

    at com.finansemble.finStore.SaleService.getActiveSales(SaleService.groovy:16)

    at com.finansemble.finStore.SaleService.getActiveSales(SaleService.groovy:11)

    at com.finensemble.IndexController$_closure1.doCall(IndexController.groovy:54)

我可以得出这样的结论:hibernate和mongodb依赖于其他一些插件但是版本不同吗?并且hibernate没有正确加载?

1 个答案:

答案 0 :(得分:0)

运行grails dependency-report并确保您使用的是最新版本的grails-datastore-*罐子。通常,要实现此目的,只需升级到hibernatemongodb

的最新版本