9 de jun. de 2011

Seam3 + Maven + Tomcat – Isto é possível?

Esta é uma dúvida daqueles que ainda não testaram o Seam 3 ou daqueles que ainda não migraram para a nova versão que foi lançada. Assim como você que está lendo esta postagem também descobri que isto é possível e por sinal muito simples a princípio.                                                                          image

Para inicio de conversa iremos usar um template(archetype) já existente o qual irá facilitar boa parte do projeto. Para maiores informações sobre templates leia Dicas para usar templates de projetos pré-configurados no Maven - Maven Archetypes.

Execute o comando abaixo para criar o seu projeto, (veja que usei -DgroupId=br.com.maven3.tutorial -DartifactId=projeto.exemplo.seam3 mas você pode alterar isto):

mvn archetype:generate -DinteractiveMode=n -DarchetypeArtifactId=jboss-jsf-weld-servlet-webapp -DarchetypeGroupId=org.jboss.weld.archetypes -DarchetypeRepository=central -DgroupId=br.com.maven3.tutorial -DartifactId=projeto.exemplo.seam3 

Após a execução com sucesso veja que a pasta projeto.exemplo.seam3 foi criada.

Ótimo não? Ótimo que nada! Vamos ver o que ainda é possível…

Este template de projeto foi projetado para funcionar com Tomcat e também com o Jetty. Para maiores informações veja no próprio site do Seam.

Agora vamos para mágica(não é mágica é maven mesmo facilitando a nossa vida):

Execute o comando para gerar o pacote: mvn package

Para finalizar, vamos executar o projeto criado, mas para isto vamos apenas executar o comando:

mvn tomcat:run 

Isto mesmo, o danado do Maven fez o Download do Tomcat e iniciou na porta 9090.

Acesse o endereço http://localhost:9090/projeto.exemplo.seam3 e verá a tela:

image

Sei que pode estar pensando que isto foi uma mágica de tão simples mas sugiro aprender um pouco mais do Maven, Seam e finalizar lendo o arquivo pom.xml gerado. Este template de projeto criado está com o pom.xml comentado, vale a pena conferir.

Na verdade o template é apenas um exemplo para implementação do Weld. Weld é uma implementação de referência(RI) do JSR-299: Java Contexts and Dependency Injection for the Java EE platform (CDI). CDI é o padrão Java para injeção de dependência e de gestão do ciclo de vida contextual. Qualquer servidor de aplicações Java EE 6-compatível oferece suporte a JSR-299.

Para os que estão evoluindo do Seam 2 para o Seam 3 segue um diagrama que ilustra o relacionamento entre Seam 2, Seam 3 e JSR-299:

weld

Resumindo:

  • CDI é uma especificação JCP incluída no Java EE
  • Weld é uma implementação do CDI
  • Seam 3 é um conjunto de módulos os quais estendem o CDI para complementar as ferramentas já fornecidas pelo Java EE 6.

Após saber mais um pouco sugiro conhecer os módulos existentes no Seam 3 em http://seamframework.org/Seam3/Status#H-Modules. Depois vá mudando o exemplo anterior apresentado para testar os seus conhecimentos adquiridos. Boa Sorte!

Qualquer dúvida, sugestão, ou até mesmo que não tenha conseguido executar, por favor deixe o seu recado.

Pesquisa personalizada

8 comentários:

  1. Muito bom, estou começando com o Maven e este blog está ajudando bastante.
    Mas na verdade estou estudando Maven por causa do Seam 3.
    Será que vc poderia fazer um tutorial do Seam 3?

    ResponderExcluir
  2. Ainda não tenho material legal sobre o Seam 3. Ainda estou começando a usar. Já trabalho há algum tempo com o Seam 2 mas ainda estou me aventurando no 3.

    Assim que tiver novidades eu te aviso.

    ResponderExcluir
  3. matusmts disse:
    Material sobre Seam3, está em falta mesmo.
    Mas devagar eu to conseguindo evolui, to me dedicando bastante no Maven3, vlw pelo blog, tá ajudando bastante.
    Até instalei o Jboss Tools 3.3 no Eclipse Indigo (3.7), ele ainda não está na versão estável,
    e nem veio nada sobre seam3 por enquanto, mas já tem alguma coisa pro JBoss AS 7 e JEE6.
    ...maven pro eclipse é o 2 tbm. Instalei tbm o IntelliJ,
    mas não gostei achei bem confuso e está bem desatualizado a versão 10.7.
    A melhor IDE pra mecher com o maven é o netbeans, mas parece que ainda não é o maven3.

    ResponderExcluir
  4. Mateus,
    realmente a documentação do Seam3 está nascendo porém já é possível acessá-la no próprio site da Framework. Veja que o Seam3 está todo modularizado. A sua documentação está assim também. Sugiro verificar em cada módulo pois a maioria deles já possui uma documentação que permite o começo do uso do Seam3.

    ResponderExcluir
  5. Mateus,
    com relação ao plugin do Maven 3 no Eclipse Indigo já está disponível. Tanto que se você olhar as configurações do Maven verá que aponta para a versão 3, no meu caso, 3.0.2.

    Esta configuração está em Windows / Preferences / Maven / Installations.

    Qualquer coisa você pode mudar para a versão do Maven que você preferir.

    Até mais.

    ResponderExcluir
  6. Aos que precisam descobrir mais sobre o Seam3 nada melhor do que verificar os exemplos já desenvolvidos para cada módulo:

    https://github.com/seam

    ResponderExcluir
  7. Aqui deu erro executando o projeto mvn tomcat:run

    ResponderExcluir
  8. Olá, desculpe-me pela demora em responder pois estava um pouco afastado do blog. O erro ainda persiste? Você pode executar novamente usando o -e no final para saber qual foi o problema. Se ainda persistir cole um comentário com o problema encontrado para que possa ajudá-lo

    ResponderExcluir

Leia as regras:
Todos os comentários são lidos e moderados previamente.
Apenas os que respeitam as regras abaixo serão publicados:
- o comentário deve estar relacionado ao assunto do post
- não serão aceitos palavrões e ofensas ao redator do blog ou a terceiros
- não inclua links desnecessários no conteúdo do comentário
- se quiser deixar sua url, comente com a opção OpenId
Obs.: os comentários dos leitores não refletem a opnião do blog.