Problema com metodo list() e get(), somente em produção.
12/01/2012 04:08
0
Eae, tudo tranquilo?!
O probelma é quando gero o war e jogo no Tomcat da o seguinte erro:

Error 500: Executing action [list] of controller [fa7.carreiras.EmpresaController] caused exception: groovy.lang.MissingMethodException: No signature of method: static fa7.carreiras.Empresa.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[action:list, controller:empresa, max:10]] Possible solutions: is(java.lang.Object), wait(), wait(long), print(java.io.PrintWriter), with(groovy.lang.Closure), find(groovy.lang.Closure)
Servlet: grails
URI: /fa7-carreiras/grails/empresa/list.dispatch
Exception Message: No signature of method: static fa7.carreiras.Empresa.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[action:list, controller:empresa, max:10]] Possible solutions: is(java.lang.Object), wait(), wait(long), print(java.io.PrintWriter), with(groovy.lang.Closure), find(groovy.lang.Closure)
Caused by: No signature of method: static fa7.carreiras.Empresa.list() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[action:list, controller:empresa, max:10]] Possible solutions: is(java.lang.Object), wait(), wait(long), print(java.io.PrintWriter), with(groovy.lang.Closure), find(groovy.lang.Closure)
Class: EmpresaController
At Line: [19]

O projeto quando executado no localhost roda belezinha.
alguma luz?
Valeu,
José Júnior
Tags: list e get problema no Tomcat


0
Oi Junior, o local aonde o erro ocorre é na inicialização da aplicação? Qual a sua versão do Grails?

O que acontece: estes métodos são injetados pelo framework nas classes de domínio na sua inicialização. Talvez você esteja instanciando os objetos antes que isto ocorra. Era um erro muito comum em versões mais antigas do Grails.

Se estiver lidando com uma versão mais antiga, e o erro não for no Bootstrap, a solução é bastante simples. No Boostrap da aplicação execute um código como o abaixo nas classes de domínio problemáticas:


Empresa.list(max:10) // apenas para buscar alguma coisa e forçar a injeção do método


0
Oi Kico, esqueci de mencionar que a aplicação foi atualizadas da 1.3.5 para 1.3.7 e instalado e configurado o plugin do spring security core e depois gerado o war.
Na incialização não ocorre erro algum.
A aplicação estava rodando tranquilamente com 1.3.5 em produção.

Obrigado pelo retorno Kico
12/01/2012 13:07


0
Quando executo Empresa.list(max:10) no BootStrap a aplicação não executa e gera este erro:

2012-01-12 16:34:10,008 [Thread-2] ERROR context.ContextLoader - Context initialization failed
org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is org.codehaus.groovy.runtime.InvokerInvocationExcept
ion: groovy.lang.MissingMethodException: No signature of method: static fa7.carreiras.Empresa.list() is applicable for argument types: (java.util.LinkedHashMap)
values: [[max:10]]
Possible solutions: is(java.lang.Object), wait(), wait(long), use([Ljava.lang.Object;), find(groovy.lang.Closure), with(groovy.lang.Closure)
at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(GrailsContextLoader.java:87)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: static fa7.carreiras.Empresa.list
() is applicable for argument types: (java.util.LinkedHashMap) values: [[max:10]]
Possible solutions: is(java.lang.Object), wait(), wait(long), use([Ljava.lang.Object;), find(groovy.lang.Closure), with(groovy.lang.Closure)
at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:251)
at grails.util.Environment.executeForEnvironment(Environment.java:244)
at grails.util.Environment.executeForCurrentEnvironment(Environment.java:220)
... 5 more
Caused by: groovy.lang.MissingMethodException: No signature of method: static fa7.carreiras.Empresa.list() is applicable for argument types: (java.util.LinkedHa
shMap) values: [[max:10]]
Possible solutions: is(java.lang.Object), wait(), wait(long), use([Ljava.lang.Object;), find(groovy.lang.Closure), with(groovy.lang.Closure)
at BootStrap$_closure1.doCall(BootStrap.groovy:9)
... 8 more

Vou continuar procurando uma solução, valeu Kico.
12/01/2012 19:38


0
Acho que descobri o problema, mas não sei como resolver.
Depois que atualizei para 1.3.7 quando gero o war o plugin do hibernate não vai junto, isso somente acontece quando gero o war, percebi quando comparei o war gerado com 1.3.5 e o war com 1.3.7, para confirmar retirei o plugin do hibernate e rodei a app com grails run-app deu exatamente o mesmo erro quando gero o war e carrego no Tomcat.
Alguém tem alguma ideia de como resolver isto.

Desde já agradeço.


13/01/2012 00:59


0
Descobri o REAL problema, é no plugin spring security core, por alguma razão quando ele tá instalado o war e gerado sem a referencia pro hibernate.
A parte da atualização da 1.3.5 para 1.3.7 não gerou problema algum.
Resolvi o problema desinstalando o plugin spring security core.
Irei abrir outro post sobre o problema da geração do war sem o plugin do hibernate quando o puglin spring security core está instalado.

José Júnior
14/01/2012 01:08



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