После обновления до Grails 2.3.5 я обнаружил, что мои миксины работают только при отключении JVM.Смешиватели Grails не работают при использовании JVM forking
Все мои контроллеры имеют подобный код
import util.MyMixin
@Mixin(MyMixin)
class MyController {
Где MyMixin
определяется в src/groovy/util
и выглядит что-то вроде
package util
class MyMixin {
private def aMethod(someArgs) {
// do something
}
}
Когда BuildConfig.groovy
содержит следующий код
forkConfig = [maxMemory: 1024, minMemory: 64, debug: false, maxPerm: 256]
grails.project.fork = [
test: forkConfig, // configure settings for the test-app JVM
run: forkConfig, // configure settings for the run-app JVM
war: forkConfig, // configure settings for the run-war JVM
console: forkConfig // configure settings for the Swing console JVM
]
Тогда Я получаю следующую ошибку:
MissingMethodException occurred when processing request:
No signature of method: MyController.aMethod() is applicable for argument types
Где типы аргументов совпадают и, конечно же, код работает, когда у меня нет Разветвляющихся кода JVM в BuildConfig.groovy
.
Есть ли что-то особенное, что мне нужно сделать, чтобы заставить миксины работать при разветвлении JVM? Я использую forking, потому что Grails 2.3.5 рекомендует его, и у меня были проблемы, когда я его не использовал: Grails 2.3.5 requiring "grails clean" after every code change
Это [grails] (http://grails.org/doc/latest/api/grails/util/Mixin.html) или [groovy] (http://groovy.codehaus.org/gapi/groovy/ lang/Mixin.html) @Mixin? – dmahapatro
Я не знал, что была разница. Как мне сказать? В импорте ничего нет с «Миксином» ... должно быть? – Jason
Тогда, я думаю, вы используете 'groovy.lang.Mixin'. Попробуйте использовать другое. – dmahapatro