Grails 框架:groovy.lang.MissingMethodException:没有方法签名
Grails framework: groovy.lang.MissingMethodException: No signature of method
当我尝试将值赋给变量 "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()
您在 newDBName
分配行中缺少引号。要么使用
newDBName = "${env.accountName}"
或者只是跳过到 GString 的转换(至少根据这个片段看起来没有必要)并使用
newDBName = env.accountName
当我尝试将值赋给变量 "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()
您在 newDBName
分配行中缺少引号。要么使用
newDBName = "${env.accountName}"
或者只是跳过到 GString 的转换(至少根据这个片段看起来没有必要)并使用
newDBName = env.accountName