Grails auto-reloading new controller actions

风流意气都作罢 提交于 2019-12-14 00:23:05

问题


I've

  1. created new Grails 2.4.3 project
  2. created TestController
  3. set grails.reload.enabled = true in BuildConfig.groovy
  4. run application with grails -reloading run-app

My controller action code:

def index() {
    render "test"
}

When I change the string test to test2- I see in console (in Eclipse):

..................
|Compiling 1 source files

And after reloading page I see test2 - ok.

But when I try to add new method:

def test3() {
    render "test3"
}

I see:

Why? Why there isn't even the url?

Example - action does't exist:

Interesting thing is - when I create a whole new controller the index action of the newly created controller works...

EDIT

After a while I decided to go with spring-boot and as a matter of fact - there it's not working either. I think that springloaded is the issue here because it doesn't pick up added new method in @Controller


回答1:


I've asked the same question on github repo.

It seems that latest spring-loaded SNAPSHOT is working fine.

But it must be integrated into Grails - maybe in the next release unfortunately :(




回答2:


Solution that works for me:

1) Versions:

  • IDE: Intellij IDEA 14.1.3
  • JDK: jdk1.7.0_25
  • GRAILS: 2.5.0

2) On BuildConfig.groovy:

grails.reload.enabled = true
grails.project.fork = [
        test: false,
        run: false,
]

3) Originally, my code was compiled on grails 2.4.4, so I upgraded to 2.5.0. I had no problems with the version change with plugins or anything. My guess is this works because it uses later versions of spring-loaded. Steps:

  • set-grails-version 2.5.0
  • clean
  • delete directory work (just to be sure, I don't really know if this is good practice)
  • compile and/or go to number 4

4) Debug Idea with this configuration: run-app -reloading


Works perfect, no forked debug, reloading enabled, no console error after reload and all breakpoints working even after code changes!




回答3:


I took the liberty of reporting this issue to Grails.



来源:https://stackoverflow.com/questions/25443800/grails-auto-reloading-new-controller-actions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!