この問題を再現するには、次の手順を使用します。
- 新しいGrailsアプリケーションを作成します。
- FooControllerという新しいコントローラーを作成します
- FooControllerにアクション「バー」を追加します
- src / groovyで、Barという新しいクラスを作成します
resources.groovyで、barというSpringBeanを構成します
bar(Bar) {bean -> bean.autowire = 'byName' }
- アプリケーションを起動し、http:localhost:8080 / [appContext] / foo/barに移動します
- 次のようなスタックトレースを取得する必要があります。
java.lang.ClassCastException: Bar cannot be cast to groovy.lang.Closure
at org.grails.plugin.resource.DevModeSanityFilter.doFilter(DevModeSanityFilter.groovy:44)
at java.lang.Thread.run(Thread.java:680)'
なぜこれが起こっているのですか?それはGrailsのバグですか、それとも予想される動作ですか?
構成されたSpringBeanとアクション名の間に名前の衝突があってはならないと思います。