Я разработал простой веб-поток в Grails (в основном для экспериментов с использованием веб-потоков - в данном случае это немного излишне).После некоторых испытаний и испытаний с объектами Serializable у меня это работает - иногда.
Вот в чем дело - при первом обращении к веб-потоку после запуска приложения (run-app) я получаю это исключение:
2010-06-16 09:11:25,580 [http-8080-3] [ERROR] [org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver] No signature of method: groovy.lang.MissingMethodException.to() is applicable for argument types: (java.lang.String) values: [validate]
Possible solutions: is(java.lang.Object), any(), use([Ljava.lang.Object;), getAt(java.lang.String), with(groovy.lang.Closure), any(groovy.lang.Closure)
groovy.lang.MissingMethodException: No signature of method: groovy.lang.MissingMethodException.to() is applicable for argument types: (java.lang.String) values: [validate]
Possible solutions: is(java.lang.Object), any(), use([Ljava.lang.Object;), getAt(java.lang.String), with(groovy.lang.Closure), any(groovy.lang.Closure)
at com.sbs.component.survey.SurveyDefinitionController.invokeMethod(SurveyDefinitionController.groovy)
at com.sbs.component.survey.SurveyDefinitionController$_closure3.doCall(SurveyDefinitionController.groovy:23)
Если я «коснусь» контроллера (сделаю любое редактирование, даже если просто добавлю пробел), а затем сохраню файл, веб-поток начнет работать ... кажется, что-то не подключаетсяпока контроллер не перезагрузится хотя бы один раз.Очевидно, что это не стартер ... есть идеи, что вызывает это?
Я использую Grails 1.3.1 на Mac OSX Java 1.6.
Вот скелет веб-потока:
def createSurveyFlow = {
select {
}.to("validate")
on("cancel").to("finish")
}
validate {
on("approve") {
}.to("finish")
on("disapprove").to("select")
on("cancel").to("finish")
}
finish {
action {
flash.message = "SurveyDefinition created"
}
redirect(controller:"surveyDefinition", action:"index")
}
}