Grails não reconhece a assinatura do metodo.
23/01/2015 17:25
1
Estou com um problema o grails não reconhece a assinatura do metodo estou usando o grails 2.1.4,se alguem puder me ajudar.
o medodo:
 public void sendNotificationPlugin(final def _oObjDomain, final Long _nUsuarioId, String _event) {
List<String> classList = MyDomainUtils.classAnnotationList(_oObjDomain, RabbitMQNotification, false);
if(classList.size() > 0) {
try {
def mDados = [:];
mDados.putAll(_oObjDomain.properties);
mDados.put('id', _oObjDomain.id);
mDados.put('appId', Aplicacao.appId);
mDados.put('userId', _nUsuarioId);

String sMensagem = """{"evento":"${_event}","contexto":"${
_oObjDomain.class.getSimpleName()
}","dados":[${JSON.toString(mDados)}]}""";
sMensagem.replaceAll("\t", "").replaceAll("\n", "");

for ( String className : classList){
new RabbitMessageBuilder().send {
exchange = className
deliveryMode = 2
body = sMensagem;
}
}

} catch (Exception e) {
e.printStackTrace();
}
}
}


a chamada do metodo:

def rabbitMQService;
rabbitMQService.sendNotificationPlugin(_oObjDomain, "Remover", _nUsuarioId);


o erro:

groovy.lang.MissingMethodException: No signature of method: utils.RabbitMQService.sendNotificationPlugin() is applicable for argument types: (atendimento.Atendimento_ti, java.lang.String, java.lang.Long) values: [23/01/2015 - 8294 - EDU RODRIGUES BRAZ, ...] Possible solutions: sendNotificationPlugin(java.lang.Object, java.lang.Long, java.lang.String)

Tags: groovy.lang.MissingMethodException


1
Oi Edu,

o problema não está no Grails, mas sim na ordem que você está passando os seus parâmetros.

Observe a assinatura do seu método:

sendNotificationPlugin(final def _oObjDomain, final Long _nUsuarioId, String _event


Agora, repare na mensagem de erro:

is applicable for argument types: (atendimento.Atendimento_ti, java.lang.String, java.lang.Long)


Sua assinatura do método exige que os argumetnos venham no formato (qualuqer coisa), long e String

Você está enviando (qualquer coisa), Sting e long

Se quiser evitar este problema, pode passar os parâmetros usando um map também.

Por exemplo:


sendNotificationPlugin(_objDomain:seuObjeto, _nUsuarioId:34, _event:"evento qualquer")




0
Valeu foi um erro meu mesmo, obrigado.
26/01/2015 13:15



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto