Erro ao subir aplicação em produção
25/06/2014 13:10
1
Olá pessoal,

Estou tendo um problema quando subo uma aplicação em produção (em modo de desenvolvimento funciona sem problemas).
Quando eu subo a aplicação com o Tomcat7 aparece o seguinte erro para cada domain da minha aplicação:


2014-06-25 09:49:21,869 [localhost-startStop-1] ERROR pojo.BasicLazyInitializer - Javassist Enhancement failed: com.pacote.Classe
java.lang.NoSuchMethodError: javassist.util.proxy.ProxyFactory.setUseCache(Z)V
at grails.plugin.hibernatehijacker.hibernate.WrappedSessionFactoryBean.buildSessionFactory(WrappedSessionFactoryBean.java:45)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)


Estou utilizando o mesmo banco em modos de desenvolvimento e de produção.
Alguem tem uma idéia do que possa ser?
Tags: javassist.util.proxy.ProxyFactory.setUseCache(Z)V,pojo.BasicLazyInitializer


1
Está havendo um conflito no seu classpath. A biblioteca javassist presente no servidor está diferente da que você espera encontrar na sua aplicação.

Eis uma lista de pontos que você pode usar para verificar a causa do seu problema.

[list]
* Verifique os diretórios shared/lib e lib do seu Tomcat. Busque pela biblioteca javassist nele ou qualquer outra. Em seguida, compare com as bibliotecas que sua aplicação está usando. É fácil fazer isto: com a aplicação instalada no servidor, vá para a pasta que a contém descompactada e veja o conteúdo do diretório WEB-INF/lib
* Verifique o classpath do servidor. Muitas vezes o administrador de sistemas escolhe um diretório para armazenar uma série de arquivos JAR em seu interior e em seguida o compartilha entre todos os processos Java. Cheque se é seu caso.
* Você está enviando o war com todos os jars ou sem jar nenhum em seu interior (grails war -nojars)? Se for o segundo caso, verifique os problemas de classpath que citei no primeiro e segundo ponto desta lista.
[/list]


1
Olá Kico,

Obrigado pela ajuda!

Existia 2 jars do javassist no diretorio lib da minha aplicação, deletei um e o erro parou de acontecer \o/.
Só não sei o por que gerou o war com 2 javassists, sabe o que pode causar isso?

Valeu!
25/06/2014 19:48


1
Oi Thiago,

não tenho certeza, mas na maior parte das vezes é um ou outro plugin que acaba incluindo esta dependência acidentalmente.

Há um comando Grails que pode te ajudar: é o dependency-report. Dá uma olhada nele: http://grails.org/doc/latest/ref/Command%20Line/dependency-report.html



0
Era uma dependência do plugin para postgiz.
Inseri um "excludes "javassist"" na declaração do plugin no BuildConfig e pronto.

Valeu Kiko!
26/06/2014 23:21



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