Ошибки Grails Webflow при первом доступе - PullRequest
2 голосов
/ 16 июня 2010

Я разработал простой веб-поток в 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")
        }

    }

1 Ответ

1 голос
/ 30 июня 2010

Возможно, я понял - кажется, что определения веб-потоков и действия контроллера не очень похожи на то, что они находятся на одном контроллере.Когда я переместил веб-поток на его собственный контроллер, эти (и другие) проблемы, казалось, исчезли.Пока, по крайней мере.Я сообщу, если / когда узнаю больше.

...