Wednesday 23 September 2009

SEAM 2.2.0.GA com Tomcat 6

Ola pessoal, passei um tempo sem postar por varios motivos, projetos e meu pequeno projeto pessoal em J2ME, que esta quase pronto.
Agora vou falar da minha ultima semana tentanto fazer uma aplicacao SEAM rodar com o Tomcat 6.
Talvez alguem tenha conseguido, mas eu que passei mais de semana procurando em posts lendo em livros e tudo mais, nao consegui usando o JBoss Tools 3.5 com Eclipse 3.5, em versoes anterioes eu consegui, mas nessas duas ultimas edicoes do Eclipse com a JBoss Tools ficou praticamente impossivel, primeiro porque o "tools' nao esta maduro o suficinete, deixa muito a desejar, seja qdo vc cria um projeto que ele inclui tudo como se fosse para um AS JBoss, seja que vc precisa depois de criado o projeto ter que entrar nas configuracoes do projeto (Propriedades) para algo como que refazer os settings que ficam muitos em branco, a falta de documentacao para integrar Seam com Tomcat e enorme, achei mais duvidas sem respostas na net do que resolvidas. Muitas comfiguracoes que nao sao colocadas pelo "tools" que deveriam estar la, ou seja ficam faltando linhas de configuracoes no components.xml, web.xml. Fora que e preciso baixar um plugin para o Tomcat que se chama JBoss embedded. Que tambem nao se tem muitas explicacoes em como fazer ele rodar a contento com o AS, e mais ainda ele nao funciona com SE 6, somente com o 5.0. Os tutoriais nao sao coerentes, em um da JBoss explica que para instalar o Embedded e muito simples, bastando somente fazer dois ou tres passos, mas depois vendo em foruns e em um outro tutorial da Red Hat que nao era bem assim, precisa incluir linhas no context.xml e no server.xml do tomcat para que ele "enxergue" o plugin.
Ao meu ver NAO compensa nem tentar rodar o SEAM com Tomcat de tantas cfgs que serao necesarias e muitas delas nao sao documentadas e voce precisa meio que rodar foruns a procura de algo que esteja acontecendo com voce e meio que tentativa e erro, o que nao e valido de forma nenhuma para producao.
E por fim qdo voce usa o plug in para fazer o deploy para vc, este vai faltando o persistence.xml que tb qdo e gerado vem faltando a configuracao certa para o JNDI e deveria ser algo assim java:comp/env/jdbc/ e isso que e uma coisa basica nao vem configurado e para que rode alguma coisa a contento vc precisa gerar o .war e exportar para o diretorio de deploy ou criar um ant build.
Achei varios blogs de pessoas falando que somente com alguns tweaks era possivel fazer o SEAM rodar a contento no Tomcat, mas em nenhum deles, talvez devido a eu estar usando novas versoes, foi possivel fazer alguma coisa funcionar.
O mais interessante e que os exemplos do SEAM funcionam, mas para vc gerar um projeto e testar e muito diferente. A comecar pelos .jars que nao sao copiados para o AS e nem incluidos no projeto, vc tem que sair catando eles e descobrindo por tentativa e erro.
Olha foi uma experiencia frustrante tentar fazer o SEAM rodar no Tomcat, Usando o JBoss Tools. NAO RECOMENDO de forma alguma fazer isso, e mais ainda, quem escreve que o JBOSS Tools e praticamente a mesma coisa que usar o JBoss Developer Studio (Exadel), esta redondamente enganado, fiz alguns testes com a versao RC 2.0 e esse sim com um minimo de tweaks foi possivel rodar uma aplcacao SEAM em qq AS que vc queira, porem e pago e nao e barato. Acho que este e um dos maiores problemas que o SEAM enfrenta para se firmar como um framework de primeira, pois a ideia e otima, e ele e muito bem arquitetado, mas carece de uma comunidade forte e de ferramentas boas.
Pode ser que nas proximas versoes se consgigam uma melhor integracao com o Eclipse 3.5, com Tomcat e mesmo com o JBoss, deixando muitas coisas mais automatizadas, pois para um framework que se diz livre dos XMLs da vida... ele tem quase tanta cfgs em .xmls qto o Spring.
A diferenca e que no Spring vc os usa dentro da aplicacao e as configuracoes no lado do AS sao minimas, e no SEAM isso e o inverso... vc fica muito dependente de linhas em arquivos .xml para que o AS trabalhe como SEAM, porem no site do Spring vc ve dezenas de exemplos e ha centenas de livros e foruns a respeito o que nao acontece com o JBoss Seam, e uma ideia interessante mas que ainda precisa amadurecer bastante em alguns aspectos e sinceramente falando nao sei se ira realmente decolar, devido ao Web Beans que vem por ai, que e como uma versao do SEAM com menos recursos. Se voce parar para pensar bem... quem vai querer aprender SEAM sendo que o maior concorrente deles e feito pela mesma comapnhia e pessoa que o criou e ainda sendo um padrao que com certeza devera ter ferramentas de integracao muito melhores e ira contar rapidamente com uma comunidade maior?
Devo fazer um esforco e postar no max em 15 dias um exemplo com JBoss AS 5.1, o que devera ser bem mais facil.
Bom e isso ae, se alguem conseguiu fazer essa facanha de rodar uma aplicacao com Data Source usando SEAM no Tomcat 6, por favor poste aqui como voce fez em detalhes com versoes e tudo mais.
Obrigado