【问题标题】:Grails 2.4.3 fails to reload controller or serviceGrails 2.4.3 无法重新加载控制器或服务
【发布时间】:2014-11-20 15:01:02
【问题描述】:

我已将 Grails 2.3.8 项目升级到 2.4.3。在 2.3.8 中,我们遇到了分叉执行的问题,所以我禁用了它。现在,当我启用它并尝试重新加载更改的服务或控制器类时,我收到如下错误:

2014-09-25 19:50:37,043 [Thread-11] ERROR plugins.AbstractGrailsPluginManager  - 
Plugin [controllers:2.4.3] could not reload changes to file [C:\projects2\...\grails-app\controllers\com\...\AdminController.groovy]: 
Cannot get property 'cacheOperationSource' on null object
java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object

2014-09-25 19:42:26,251 [Thread-11] ERROR plugins.AbstractGrailsPluginManager  - 
Plugin [controllers:2.4.3] could not reload changes to file [C:\projects2\...\grails-app\controllers\...\AdminController.groovy]:
Cannot get property 'instanceControllerTagLibraryApi' on null object
java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object

我在 BuildConfig 中有

forkConfig = [maxMemory: 2048, minMemory: 2048, debug: false, minPerm:256, maxPerm: 512]
grails.project.fork = [
    test: forkConfig,
    run: forkConfig, 
    war: forkConfig, 
    console: forkConfig
] 

我这样运行 Grails:

set JAVA_OPTS=-Dgrails.full.stacktrace=true -Ddisable.auto.recompile=true -Xmx2048M -Xms2048M -XX:PermSize=512m -XX:MaxPermSize=1024m -Djava.net.preferIPv4Stack=true
grailsw --stacktrace --verbose -Dserver.port=5678 run-app %1 %2 %3 %4

无论我是否在运行应用程序中重新加载,都会出现错误。我理解错了吗?是这样,我不能同时重新加载和分叉执行吗?

如果我将所有分叉条目都设置为 false,它会像以前一样工作。

提前谢谢你。 最好的问候:巴拉兹

【问题讨论】:

    标签: grails reload grails-2.4


    【解决方案1】:

    几个小时前在 grails dev discus 邮件列表中发布了一个类似的问题。从我能够查看的示例应用程序中,当正在编辑的类的包名称中包含“grails”时,似乎发生了错误。 https://groups.google.com/forum/#!topic/grails-dev-discuss/u5gvuwWXoTk

    您应该在命名约定中检查它并将其更改为更特定于您的应用程序的名称....

    【讨论】:

    • 感谢您的回答。好吧,我们在一些包名称中包含 grails,例如“com.company.grails.util”,但在控制器无法加载的地方没有。反正我试试……
    • 包名有什么结果吗?从邮件列表中,您应该检查包名称的“grails”和“groovy”
    • 我尝试在 Eclipse 中重构它,但失败了。这太复杂了。我禁用了分叉执行,一切都很好。但是,我不知道这对我来说是否是一个解决方案,因为无法重新加载的类在包名中既没有 grails,也没有 groovy。抱歉,我无法尝试。
    • 尽管使用 grails -reloading run-app 重新加载,我也收到此错误
    • 不——但它神奇地消失了,从那以后我再也没有见过它。它也被隔离到一台机器上——其他运行相同代码库的机器没有问题。 MB 删除 .grails 文件夹和 target/build 文件夹并重试?
    猜你喜欢
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多