Jboss Seam: Getting started!
Marcos Sousa | January 14, 2008Bom, para quem já desenvolve em JSF, diversas vezes se deparou com problemas simples mas que requerem uma solução relativamente complexa. Por exemplo: editar um registro de uma tabela de dados, manter o estado de um combo até o próximo request para validar o item selecionado. Passar dados via GET.
O Jboss seam possui diversas funcionalidades que facilitam a vida do desenvolvedor, com o suporte a Restful URL, melhorias no ciclo de vida JSF, controle de exceções, transações.
Para quem está interessado em trabalhar com ele é bem simples (Hello world):
1 – Faça o download da versão mais atualizada do jboss seam: Clique aqui
2 – Basta criar um projeto em sua IDE preferida (no meu caso eclipse), e inclua os seguintes jars: javaassist.jar, jboss-seam.jar, jboss-seam-ui.jar e commons-beanutils.jar.
3 – Cria um arquivo xml dentro de web-inf chamado components:
<?xml version="1.0" encoding="UTF-8"?> <components xmlns="http://jboss.com/products/seam/components" xmlns:bpm="http://jboss.com/products/seam/bpm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://jboss.com/products/seam/bpm http://jboss.com/products/seam/bpm-2.0.xsd http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.0.xsd"> </components>
4 – Edite o arquivo web.xml e cole o seguinte código:
<listener> <listener-class>org.jboss.seam.servlet.SeamListener</listener-class> </listener> <filter> <filter-name>Seam Filter</filter-name> <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class> </filter> <filter-mapping> <filter-name>Seam Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
5 – Cria um arquivo xml dentro de web-inf chamado pages:
<?xml version="1.0" encoding="UTF-8"?> <pages xmlns="http://jboss.com/products/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.0.xsd"> </pages>
6 – Crie um arquivo arquivo em branco dentro da pasta de classes: seam.properties. Para que o Seam localize seus componentes anotados.
7 – Agora basta criar uma classe e anotá-la com a anotação: @Name(“HelloWorld”).
8 – Usar o componente criado #{HelloWorld.hello}.
Como pode ver é bem simples e sem mistérios a instalação. Nos próximos dias darei algumas dias para explorar melhor o framework junto com Spring, Hibernate.






Vou tentar…
vamos ver se vai funcionar!
Só fazendo como está escrito aqui não funciona!
Olá Alexandre,
Qual é o erro é gerado?
[...] http://www.marcossousa.com/2008/01/14/jboss-seam-getting-started/ [...]
Já to desistindo do JBoss Seam.
Nunca vi uma ferramenta que desse tanto erro de configuração.
Preciso apenas usar os recursos básico + injeção de um objeto entityManager. Já apanhei um dia inteiro pra descobrir que o Tomcat não dá suporte a transação com JPA.
Já testei no JBoss 5.0, que na minha máquina só inicia sem problemas em noites de lua cheia (a depender do alinhamento da lua com plutão, claro).
Já precisei colocar e retirar mais 40 mil arquivos jars que dão conflito (muito deles também de acordo com este mesmo alinhamento citado).
Estou chegando a conclusão de que o Seam deve ser muuuuito bom mesmo. Se você tem 6 meses pra entregar um projeto, você passa 5 meses 29 dias e 20 horas tentando colocar ele pra funcionar. Depois disso, bastam as 4 horas restantes pro sistema ficar pronto.
Desculpa o desabafo, mas realmente já perdi as contas das mensagens de erros que já vi.
Olá João,
Quais tipos de problemas você está enfrentando? Talvez seja um simples detalhe.
Abraços,
Cara! qual a versão que você costuma usar do SEAM?
Pois estou tendo problemas, eu ja entendi como funciona o framework e noto que é bem rápido de construir aplicações nele, o problema é fazer funcionar no Servidor de aplicações.Não roda de jeito nenhum ja tentei no Netbeans, no Jboss Studio, Red hat developer Studio, eclipse Jboss tools. Usei o Tom cat 6, Jboss AS(4.2 e o 5.0 GA). No 4.2 da um erro e no 5.0 da outro tipo de erro e no Tomcat da outro erro diferente.
Não estou utilizando EJB3
Valeu!
@Moacir,
Bom eu já usei as versões 1.2, 2.0 e 2.1. Em todas elas não tive problemas. Talvez seja alguma configuração ou lib que esteja faltando. Fique atento a exceções do tipo ClassNotFoundError, analise o pacote completo.
Um detalhe, não esqueça de que no Tomcat, as cofigurações de EJB não funcionam, a menos que você use o Embeddable EJB.
Nao funciona nem sob decreto.
A aplicacao simplesmente nao deploy :
FAIL – Application at context path /myapp could not be started
@Moacir,
Coloque o stacktrace da sua aplicação. Aí conseguirei te ajudar.
configurar essas coisinhs requer paciencia as vezes.. nao desistam
Ola Marcus, nem dei o feedback sobre o Jboss seam, Consegui configurar usando o seamgen. O Framework é otimo.
Valeu!
A ultima versao do seam é otima e recomendo usa-la, pois tem opções de construir os exemplos para o tomcat…
Ola Marcos,
Estou tentando iniciar com o Jboss seam mas estou com problemas.
Baixei:
JBoss seam 2.2.0 GA
Eclipse Ganymede 3.4
JBoss 5.1 GA
JBoss Tools 3.0
Segui os passos da instalação no site do jboss e tudo pareceu bem.
No entando ao tentar criar um Seam Web Project da o seguinte erro:
Failed while installing Dynamic Web Module 2.5
Reason:
java.lang.NullPointException
Tem idéia de como posso resolver ?
Ou tenho outra maneira de criar um projeto web com o seam e com EJB 3 ?
Obrigado.
@Edmilson,
Eu não passei por este problema. Talvez as configurações que você está escolhendo não estão compatíveis com o servidor escolhido.
@Marcos,
Estou utilizando:
JBoss seam 2.2.0 GA
Eclipse Ganymede 3.4
JBoss 5.1 GA
JBoss Tools 3.0
JBoss seam 2.2.0 GA
Eclipse Ganymede 3.4
JBoss 5.1 GA
JBoss Tools 3.0
Você tem uma outra configuração adequada e que funcione ?
Se tiver os links para eu baixar agradeço.
Um abraço.
@Edmilson,
Tente usar o Eclipse Galileo e a versão do Jboss Tools mais recente para o mesmo.
A combinação dos pacotes abaixo funciona sem problemas no linux – ubuntu 9.04
Resolvi usar os pacotes no linux devido a sua estabilidade.
eclipse-jee-ganymede-SR2-linux-gtk.tar.gz
jboss-seam-2.2.0.GA.tar.gz
jboss-5.1.0.GA.zip
JBossTools-ALL-linux-gtk-3.0.2.v200909151014R-H192-GA.zip
mysql-connector-java-5.1.10-bin.jar