grails - 方法 : org. codehaus.groovy.runtime.GStringImpl.split() 没有签名

标签 grails ubuntu groovy ubuntu-12.04

错误信息:

No signature of method: org.codehaus.groovy.runtime.GStringImpl.split() 
is applicable for argument types: (java.lang.String) values: [:]

Possible solutions: split(), split(), split(groovy.lang.Closure), 
plus(java.lang.String), wait(),toList()

代码片段:
static getRosterId(def session) {
     session.filter?.split(':')[0]
}
static getSubject(def session) {
    session.filter?.split(':')[1]
}

JDK:
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.4)OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

格拉斯版本:
2.0.1

Ubuntu版本:
Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic x86_64)

这是对应该是普通字符串的拆分...当然它是 GString 而在 grails 中,此代码在生产中,在我们的本地机器上工作,但在我们的 CI Ubuntu 服务器上不起作用......不确定为什么 Grails 不能在这个特定的环境中解析 String 方法,我们在这个类中没有做任何特殊的事情,没有 String.metaClass 操作......直接 Grails。

任何输入都会很棒

最佳答案

我们最后的解决办法是

static getRosterId(def session) {
     session.filter?.toString().split(':')[0]
}
static getSubject(def session) {
     session.filter?.toString().split(':')[1]
}

这在 Groovy 中不需要! :( GStringImpl 对象应该解析所有 GString 和 java.lang.String 方法 :/

关于grails - 方法 : org. codehaus.groovy.runtime.GStringImpl.split() 没有签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21008933/

相关文章:

json - Groovy - 将对象转换为 JSON 字符串

gradle - 无法解决最近创建的grails项目中的依赖关系

grails - Grails 域类必须与数据库绑定(bind)吗?

ruby-on-rails - Nginx ssl_protocol 设置不起作用

php - 让 memcached 插件在 ub 9.04 上工作时遇到巨大问题

groovy - 当我检查变量时,如何在 Spock 中使用 IgnoreIf?

css - 使用 Grails 的插件

grails - Grails 2.1.2-无法解决的依赖错误

javascript - 在弹出窗口中填充来自 groovy Controller 的数据

java - 重启VM后无法启动elasticsearch