0

我有一个非常普通的 Grails 应用程序。控制器上的域对象。在本地使用 run-app 或 run-war 时,一切运行良好。当我使用 grails war 创建 WAR 文件并部署到 Tomcat 7.0.25 webapps 目录时,我得到以下信息:

错误 500:内部服务器错误 URI/apps2/mriMetricAdjustment/teamResultAdjustment/list Classgroovy.lang.MissingMethodException MessageNo 方法签名:com.thrivent.mriAdjustment.domain.TeamResultAdjustment.withCriteria() 适用于参数类型:() 值:[]可能的解决方案:withCriteria(groovy.lang.Closure), withCriteria(java.util.Map, groovy.lang.Closure), createCriteria()

withCriteria()是一个域方法,这个错误出现在所有域对象上。我已经尝试了各种清洁、刷新依赖项、战争构建中的各种环境切换(如在 grails prod war 中)。我已经完全摧毁了 Tomcat 上的应用程序并重新部署。没有。我正在使用 Groovy Grails Tool Suite 3.1.0、Grails 2.1.1。任何帮助将不胜感激。

在遇到问题的地方添加堆栈跟踪和代码。每个控制器中的相同位置:

[2013-04-19 16:51:43.931] sysCorpMRIMetricAdjustments ajp-bio-8018-exec-2 错误 rg.codehaus.groovy.grails.web.errors.GrailsExceptionResolver - 处理请求时发生错误 MissingMethodException:[GET] /apps2/ mriMetricAdjustment/teamResultAdjustment/list 没有方法签名:com.thrivent.mriAdjustment.domain.TeamResultAdjustment.withCriteria() 适用于参数类型:() 值:[] 可能的解决方案:withCriteria(groovy.lang.Closure), withCriteria(java .util.Map、groovy.lang.Closure)、createCriteria()。Stacktrace 如下:groovy.lang.MissingMethodException:没有方法签名:com.thrivent.mriAdjustment.domain.TeamResultAdjustment.withCriteria() 适用于参数类型:() 值:[] 可能的解决方案:withCriteria(groovy.lang.Closure) , withCriteria(java.util.Map, groovy.lang.

def results = TeamResultAdjustment.withCriteria { and { like("recordStatusCode", "A") like ("teamID", "%" + params.tsID + "%") } }

使用错误的日志和堆栈跟踪中的片段进行了更新。是否有需要清除的 Tomcat 缓存?

适用于参数类型:() 值:[] 可能的解决方案:createCriteria()。Stacktrace 如下:groovy.lang.MissingMethodException:没有方法签名:>com.thrivent.mriAdjustment.domain.GoalAdjustment.createCriteria() 适用于 >argument 类型:() 值:[] 可能的解决方案:createCriteria() at >com .thrivent.mriAdjustment.controller.GoalAdjustmentController.list(GoalAdjustmentController.groovy:33) 在 >grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilte>r.java:195) 在 grails.plugin.cache.web。 filter.AbstractFilter.doFilter(AbstractFilter.java:63) at >java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 908) 在 java.lang.

` 插件 { 运行时 ":hibernate:$grailsVersion" 运行时 ":jquery:1.8.0" 运行时 ":resources:1.1.6"

    // Uncomment these (or add new ones) to enable additional resources capabilities
    //runtime ":zipped-resources:1.0"
    //runtime ":cached-resources:1.0"
    //runtime ":yui-minify-resources:0.1.4"

    build ":tomcat:$grailsVersion"
    //build ":hibernate:$grailsVersion"

    runtime ":database-migration:1.1"

    compile ':cache:1.0.0'
    compile ":grails-ui:1.2.3"
    compile ":yui:2.8.2.1"
    compile ":bubbling:2.1.4"
    compile ":searchable:0.6.4"
    compile ":jquery-ui:1.8.24"
    compile ":jquery-datatables:1.7.5"
    //compile ":hibernate:$grailsVersion"
}`

最后但同样重要的是 - 我重新安装战争时的 catalina 日志:

>Apr 22, 2013 11:50:22 AM org.apache.catalina.startup.HostConfig checkResources
>INFO: Undeploying context [/apps2/mriMetricAdjustment]
>Apr 22, 2013 11:50:22 AM org.apache.catalina.startup.HostConfig deployWAR
>INFO: Deploying web application archive /opt/Apache/Tomcat7.0.25/profiles/sysCorpMRIMetricAdjustments/webapps/apps2#mriMetricAdjustment.war
>Apr 22, 2013 11:50:26 AM org.apache.catalina.core.ApplicationContext log
>INFO: Initializing Spring root WebApplicationContext
>Apr 22, 2013 11:50:55 AM org.apache.catalina.core.ApplicationContext log
>INFO: Initializing Spring FrameworkServlet 'grails'
>Apr 22, 2013 11:54:19 AM org.apache.catalina.core.ApplicationContext log
>INFO: Initializing Spring FrameworkServlet 'gsp'
>Apr 22, 2013 11:54:19 AM org.apache.catalina.core.ApplicationContext log
>INFO: GSP servlet initialized

还有一个更新……这是我安装的插件:

Plug-ins you currently have installed are listed below:
-------------------------------------------------------------
bubbling            2.1.4            --  Bubbling Library YUI Extension
cache               1.0.0            --  Cache Plugin
database-migration  1.1              --  Grails Database Migration Plugin
grails-ui           1.2.3            --  Grails UI
hibernate           2.1.1            --  Hibernate for Grails
jquery              1.8.0            --  JQuery for Grails
jquery-datatables   1.7.5            --  JQuery DataTables Plugin
jquery-ui           1.8.24           --  jQuery UI resources
resources           1.1.6            --  Resources
searchable          0.6.4            --  Searchable Plugin
tomcat              2.1.1            --  Apache Tomcat plugin for Grails
webxml              1.4.1            --  WebXmlConfig
yui                 2.8.2.1          --  Yahoo! User Interface Library (YUI)
4

2 回答 2

0

请分享 和 的domain代码controller。它毫无例外地对我有用。

脚步:

  • 已创建demoApp
  • 已创建domain
  • 已创建controller
  • withCriteriaindex()行动中使用
  • grails war
  • 将 WAR 部署到 Tomcat 7.0.39(最新)

您可以在此处找到详细信息。

要点击的网址:

http://localhost:8080/demoApp-0.1/foo?name=Foo
于 2013-04-20T04:09:00.330 回答
0

因此,这与应用程序 WAR 无关,而是服务器配置与 DataSource.groovy 不匹配。服务器被命名为“systst”,但 DataSource.groovy 中的环境被标记为“syst* e *st”。我怀疑 GORM 配置从未发生过,因为从未加载数据源配置。没有错误消息,但是我原以为域对象会失败,因为我引用了域中的数据源名称。谢谢大家!

于 2013-04-23T17:24:14.620 回答