错误信息:
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/