Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

MissingMethodException Error

 
Dan King
Ranch Hand
Posts: 84
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I recently started learning grails/groovy - reading along with "Grails: A Quick Start Guide"; I've run into this error which has got me stumped. Anyone know what's wrong? Following is the error message:

Error 500: groovy.lang.MissingMethodException: No signature of method: TechEvent.get() is applicable for argument types: (java.lang.String, java.lang.String) values: [1, ]
Servlet: grails
URI: /TechDays/grails/message/save.dispatch
Exception Message: No signature of method: TechEvent.get() is applicable for argument types: (java.lang.String, java.lang.String) values: [1, ]
Caused by: groovy.lang.MissingMethodException: No signature of method: TechEvent.get() is applicable for argument types: (java.lang.String, java.lang.String) values: [1, ]
Class: MessageController
At Line: [100]
Code Snippet:
99: def save = {
100: def messageInstance = new Message(params)
101: if(!messageInstance.hasErrors() && messageInstance.save()) {
 
Gregg Bolinger
Ranch Hand
Posts: 15304
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I know why this is happening but without seeing your Message and TechEvent domains I can't really explain it to you and tell you how to fix it. Basically, for some reason, when Message(params) does it's stuff, it is trying to get a TechEvent using 2 String parameters. The get method in GORM usually accepts an Integer which would be the ID of the object you need or an Object, but not a String, and not 2 Strings. Can you show us your domain classes?
 
Dan King
Ranch Hand
Posts: 84
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Gregg Bolinger wrote:...Can you show us your domain classes?


Message domain:


TechEvent domain:
 
Dan King
Ranch Hand
Posts: 84
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Gregg Bolinger wrote:Basically, for some reason, when Message(params) does it's stuff, it is trying to get a TechEvent using 2 String parameters. The get method in GORM usually accepts an Integer which would be the ID of the object you need or an Object, but not a String, and not 2 Strings...


The issue was a hidden field in a form within my gsp, which duplicated an active field; thus upon submission it would send two arguments for the same parameter. I removed the hidden field and it now almost works. While I am now able to create a "new" message, when I try to "reply" I get the following error, which seems to be a grails bug:


Error 500: java.lang.ClassCastException: TechEvent$__clinit__closure1 cannot be cast to java.util.Map
Servlet: grails
URI: /TechDays/grails/message/save.dispatch
Exception Message: TechEvent$__clinit__closure1 cannot be cast to java.util.Map
Caused by: java.lang.ClassCastException: TechEvent$__clinit__closure1 cannot be cast to java.util.Map
Class: MessageController
At Line: [100]
Code Snippet:

99: def save = {
100: def messageInstance = new Message(params)
101: if(!messageInstance.hasErrors() && messageInstance.save()) {

 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic