Assinatura de método em serviço não é encontrado
28/01/2016 10:10
0
Bom dia,

Tenho o seguinte controller  (para testes):

class TesteController {
def buscaService

def list() {
  int totalRecords = buscaService.countBy(params['x'], params['y'],params['z'])
  println totalRecords
}
}


o seguinte serviço :

@Transactional
class BuscaService {
def countBy(x,y,z){
  new TesteDAO().countBy(x,y,MeuEnum.valueOf(z))
}
}

Estou recebendo o seguinte erro

No signature of method: BuscaService.countBy() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String) values: [TESTE, TESTE, TESTE]. Stacktrace follows:
java.lang.reflect.InvocationTargetException: null
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_66]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
Caused by: groovy.lang.MissingMethodException: No signature of method: BuscaService.countBy() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String) values: [TESTE, TESTE, TESTE]
at sigo.TesteController.list(TesteController.groovy:27) ~[main/:na]
... 3 common frames omitte

Eu não entendi muito bem o porque do erro. O serviço recebe 3 parametros String que vem da tela, e repassaria esses parametros para um DAO que faz uma consulta especifica.

Alguém tem alguma idéia?
Tags: Grails, Serviços


0
Aliás, nenhum método desse serviço é encontrado.

Tenho outro serviço implementado que funcionam normalmente.


0
Olá Anderson,
  Acho que o problema é o nome do seu método, "countBy()" já é um método estático definido pelo grails: https://grails.github.io/grails-doc/3.0.x/ref/Domain%20Classes/countBy.html ai ele deve estar tentando usar o do Grails e não o seu.
  Se você mudar o nome funciona?
29/01/2016 12:52


0
Dyego
Eu invoco o método a partir de um serviço. Esse método estático é definido em classes de domínio, o que não é o caso. De qualquer modo tentei alterar o nome do método mas o erro persiste :/


0
Anderson,
  Olhando com mais atenção observei que você tem 2 métodos com nome "countBy" um deles (creio eu) definido no Service: BuscaService  e outro definido na sua domain "TesteDAO", como está a declaração deste "countBy" na domain "TesteDAO"?
  Outra coisa, você não definiu os tipos dos parâmetros do método "BuscaService.countBy()", para eliminarmos algumas possibilidades, tente defini-los explicitamente.
01/02/2016 12:53



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