I've
- created new Grails 2.4.3 project
- created
TestController
- set
grails.reload.enabled = true
inBuildConfig.groovy
- 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
Solution that works for me:
1) Versions:
2) On BuildConfig.groovy:
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:
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!
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 :(
I took the liberty of reporting this issue to Grails.