Структура Grails: groovy.lang.MissingMethodException: Нет подписи метода - PullRequest
0 голосов
/ 27 февраля 2019

Когда я попытался присвоить значение переменной «newDBName», я получил ошибку:

ERROR [grails.app.controllers] groovy.lang.MissingMethodException: 
No signature of method: DataSourceConfigService.$() is applicable for 
argument types: DataSourceConfigService$_injectNewDatasource_closure1_closure3) 
values: [DataSourceConfigService$_injectNewDatasource_closure1_closure3@1e1ae104]

Код:

class DataSourceConfigService {

def injectNewDatasource() {
            String newDBName = ""
            Environment.list().each {env ->
                if( !grailsApplication.mainContext.containsBean( "${env.accountName}" ) ) {

                            def bb = new BeanBuilder()
                            bb.beans {
                                  "${env.accountName}"(ComboPooledDataSource) {bean -> ...}
                                  bb.registerBeans( grailsApplication.mainContext );
                            }
                            log.info "Added bean called ${env.accountName}"

                            newDBName = ${env.accountName}
                }
            }
            return newDBName
}

}

Вот как я вызываю функцию:

String newDBName = dataSourceConfigService.injectNewDatasource()

1 Ответ

0 голосов
/ 27 февраля 2019

Вам не хватает кавычек в строке назначения newDBName.Либо используйте

newDBName = "${env.accountName}"

, либо просто пропустите преобразование в GString (по крайней мере, в этом фрагменте это выглядит ненужным) и используйте

newDBName = env.accountName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...