最近我使用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没有正确加载?
答案 0 :(得分:0)
运行grails dependency-report
并确保您使用的是最新版本的grails-datastore-*
罐子。通常,要实现此目的,只需升级到hibernate
和mongodb