编译 groovy 类时出现奇怪的堆栈跟踪
我正在用 Groovy 编写一个小型测试应用程序。 我有以下代码。
class Address {
static constraints = {
street(blank:false, maxSize:100)
residencenumber(min:1, max:65000)
addition()
zip()
city(blank:false, maxSize:100)
county()
country(blank:false, maxSize:50)
}
String street
String zip
int residencenumber
String addition
String city
String county
String country
String toString() {
return street + " " + residencenumber + " " + zip + " " + city + " " + country
}
我
收到了这条相当神秘的消息。
nojevive@follett:~/dev/code/mysmallapp$ grails 生成所有地址 欢迎使用 Grails 1.1.1 - http://grails.org/ 根据 Apache 标准许可证 2.0 获得许可 Grails 主目录设置为:/home/nojevive/dev/grails
基本目录:/home/nojevive/dev/code/mysmallapp 运行脚本 /home/nojevive/dev/grails/scripts/GenerateAll.groovy 发展环境 <代码> groovy.lang.MissingMethodException:没有方法签名:java.lang.Integer.call() 适用于参数类型:() 值:[] 在项目 $__clinit__closure1.doCall(Project.groovy:11) 在项目 $__clinit__closure1.doCall(Project.groovy) 在 Project.getProperty(Project.groovy) 在 _PluginDependency_groovy$_run_closure6_closure53.doCall(_PluginDependency_groovy:467) 在 _PluginDependency_groovy$_run_closure6_closure53.doCall(_PluginDependency_groovy) 在 _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:274) 在 _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy) 在 _PluginDependency_groovy$_run_closure6.doCall(_PluginDependency_groovy:447) 在 _GrailsBootstrap_groovy$_run_closure1.doCall(_GrailsBootstrap_groovy:74) 在 _GrailsGenerate_groovy$_run_closure1.doCall(_GrailsGenerate_groovy:37) 在GenerateAll$_run_closure1.doCall(GenerateAll.groovy:42) 在 gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324) 在 gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334) 在 gant.Gant$_dispatch_closure6.doCall(Gant.groovy) 在 gant.Gant.withBuildListeners(Gant.groovy:344) 在 gant.Gant.this$2$withBuildListeners(Gant.groovy) 在 gant.Gant$this$2$withBuildListeners.callCurrent(来源未知) 在 gant.Gant.dispatch(Gant.groovy:334) 在 gant.Gant.this$2$dispatch(Gant.groovy) 在 gant.Gant.invokeMethod(Gant.groovy) 在 gant.Gant.processTargets(Gant.groovy:495) 在 gant.Gant.processTargets(Gant.groovy:480) 加载插件管理器时出错:没有方法签名:java.lang.Integer.call() 适用于参数类型:() 值:[]
首先我想也许我的号码超出了范围(我有 1000000)。 然后我想也许这个号码是一个内置名称,所以我将其重命名为“residencenumber”。 但没有运气。 我在这里缺少什么? 我现在删除了所有限制,但仍然是相同的消息。 所以我猜这与领域无关。 一定有什么东西坏掉了吗?
I'm coding a small test app in Groovy. I have the following code.
class Address {
static constraints = {
street(blank:false, maxSize:100)
residencenumber(min:1, max:65000)
addition()
zip()
city(blank:false, maxSize:100)
county()
country(blank:false, maxSize:50)
}
String street
String zip
int residencenumber
String addition
String city
String county
String country
String toString() {
return street + " " + residencenumber + " " + zip + " " + city + " " + country
}
}
I'm getting this rather cryptic message.
nojevive@follett:~/dev/code/mysmallapp$ grails generate-all Address
Welcome to Grails 1.1.1 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /home/nojevive/dev/grails
Base Directory: /home/nojevive/dev/code/mysmallapp
Running script /home/nojevive/dev/grails/scripts/GenerateAll.groovy
Environment set to development
groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: []
at Project$__clinit__closure1.doCall(Project.groovy:11)
at Project$__clinit__closure1.doCall(Project.groovy)
at Project.getProperty(Project.groovy)
at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy:467)
at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:274)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _PluginDependencies_groovy$_run_closure6.doCall(_PluginDependencies_groovy:447)
at _GrailsBootstrap_groovy$_run_closure1.doCall(_GrailsBootstrap_groovy:74)
at _GrailsGenerate_groovy$_run_closure1.doCall(_GrailsGenerate_groovy:37)
at GenerateAll$_run_closure1.doCall(GenerateAll.groovy:42)
at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:344)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:334)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:495)
at gant.Gant.processTargets(Gant.groovy:480)
Error loading plugin manager: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: []
First I thought maybe my number was out of range (I had 1000000). Then I thought maybe the number was a built-in name so I renamed to residencenumber. But no luck. What am I missing here?
I now removed all constraints, but still same message. So it has nothing to do with the fields I guess. Something must be broken?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我知道你已经解决了这个问题,但是执行 toString 的更好方法是:
I know you have this solved, but a nicer way of doing the toString is:
我可能是错的,但我认为你正在将 int 添加到 String 中。 我
尝试:
I might be wrong but I think you're adding int to String. I
Try: