gpt4 book ai didi

grails - 运行应用程序和运行 war 之间的Grails行为差异

转载 作者:行者123 更新时间:2023-12-02 15:03:25 28 4
gpt4 key购买 nike

我对Groovy和Grails相对较新,并在业余时间试用它们。我有一个小型的Grails测试应用程序,可以使用grails run-app正常运行,但是grails run-war导致错误。

grails-app/conf/BootStrip.init方法中,我在DefaultGrailsControllerClassDefaultGrailsApplication上添加了一些属性 getter :

DefaultGrailsControllerClass.metaClass.getMenuText = { ->
getPropertyOrStaticPropertyOrFieldValue('menuText', String.class)
}
DefaultGrailsControllerClass.metaClass.getMenuOrder = { ->
getPropertyOrStaticPropertyOrFieldValue('menuOrder', Integer.class)
}
DefaultGrailsApplication.metaClass.getMenuControllerClasses = { ->
controllerClasses.findAll { it.menuText != null }.sort { it.menuOrder }
}

在我的 grails-app/views/layouts/main.gsp中,我正在使用以下代码:
<g:each var="c" in="${ grailsApplication.menuControllerClasses }">
<li><g:link controller="${c.logicalPropertyName}">${c.menuText}</g:link></li>
</g:each>

这在 run-app下可以正常工作,但是在 run-war下运行,我得到以下信息:

groovy.lang.MissingPropertyException:无此类属性:menuControllerClasses类:org.codehaus.groovy.grails.commons.DefaultGrailsApplication

我已经在Grails 1.1.1和1.2-M1下进行了尝试,并获得了相同的结果。我已经验证了 BootStrap.init方法正在被调用(通过 println),但是对 metaClass所做的更改似乎不在 run-war之下。

知道我缺少什么吗?

最佳答案

grails run-war-在Jetty中运行Grails应用程序的WAR

grails run-app-在Jetty中运行Grails应用程序

差异似乎是run-war不像run-app那样支持重新加载。

不知道你缺少什么。

关于grails - 运行应用程序和运行 war 之间的Grails行为差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1090303/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com