sábado, 26 de setembro de 2009

Servidores de Aplicação e a Velha Batalha

É inevitável!

Sempre me sinto ridículo quando preciso testar uma nova versão de servidor de aplicações JEE com alguma nova configuração de aplicação.
As incompatibilidades que ainda existem entre servidores de aplicações JEE (embora sigam uma mesma especificação) e as incompatibilidades entre eles e algumas versões de bibliotecas tiram minutos (senão horas) de paz de muitos desenvolvedores - levando em consideração que muitos desenvolvedores também não nasceram com a bunda (pra não dizer outra coisa) virada para a lua, e não conseguem executar qualquer coisa "de primeira" em um desses servidores.

Minha saga de hoje começou com o GlassFish. Já fazia um bom tempo que eu não o utilizava.
Ao colocar uma aplicação JSF simples pra rodar nele, usando EJB, uma classe - entidade de negócio - não era reconhecida pelo classloader. Procurando pela internet por possíveis soluções, encontrei várias coisas como:

"A classe não deve estar no classpath"

"Tenha certeza de que o jar que contém a classe está no WEB-INF/lib da aplicação"

e por aí vai.

Todas as classes do mesmo pacote da bendida estavam sendo carregadas, menos ela. Ei so erro:

"IOP00810257: (MARSHAL) Could not load class tnt.projeto.financare.business.domain.TipoDeEventoConta"
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 257 completed: Maybe

Tentei várias coisas, menos o que pudesse resolver.
Já com ódio, resolvi tentar o JBoss. Baixei a última versão (5.1.0)
Depois de ter que colocar jars da aplicação no servidor (Richfaces) e todas as suas dependências, e remover jars que poderiam causar conflitos no classloader, por se tratarem de classes já existentes no JBoss (commons tralalá) encontrei um problema de compatibilidade entre a versão do Facelets que eu estava usando e o JBoss.
A dica de solução veio do blog: http://blog.javarnd.com/?p=31.
Depois de resolvidos estes conflitos todos, consegui executar a aplicação, se sem a maldição do erro inicial. Mas ainda ficou a dúvida do que é que o provoca.

E vamo que vamo!

Nenhum comentário:

Postar um comentário