Tuesday 23 March 2010

Configurando o Tomcat 6 para rodar com o JBoss Seam

Ola pessoal apos um longo tempo sem postar, ME DESCULPEM, mas eu me mudei de pais e atualmente minha mulher esta com 6 meses do nosso primeiro filho, e ainda por cima estou envolvido em um projeto bem complicado com algumas tecnologias antigas.
Bom vamos la, para comecar se voce nao tiver algum desses, vai precisar fazer o download deles :
Java SE 5.0 - Nao adianta chorar, tem que ser o Java 5 mesmo isto ta no proprio site do Seam (http://www.seamframework.org/Download) bem como explicando as versao que servem para cada versao do JBoss AS. De uma olhada na.
A grosso modo o Seam 2.0 deve ser a versao que roda no Tomcat 6.
Apos voce instalar o Tomcat, e o JBoss Tools no Eclipse, resta fazer a configuracao (nao devo entrar nesses detalhes aqui, mas se for preciso, por favor me mandem um post e eu publico ok!)
Para o Tomcat voce comeca criando uma pasta dentro da pasta lib,
exemplo {Tomcat_home}/lib/seam
depois copie todos os Seam jars para dentro dela
Em {Tomcat_home}/conf/catalina.properties crie esta linha shared.loader=${catalina.home}/lib/seam/*.jar
embaixo desta : common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar
Se necessario faca a configuracao do vhost em {Tomcat_home}/conf/server.xml
Depois voce pode criar o data source no Tomcat, va em {Tomcat_home}/conf
No arquivo context.xml inclua algo similar, esse exemplo aqui e para o MySql

< Context crossContext="true" debug="5" docBase="seamweb" path="/seamweb" reloadable="true">

< Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/seamweb" password="" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/seamweb" username="edem"/>

< / Context>


Para mais informacoes a respeito de como configurar visite este link https://sec1.woopra.com/docs/jndi-datasource-examples-howto.html
Nele voce tera explicacoes para a maioria dos SGBDs existentes, esta em ingles mas e bem facil de entender.
Para configurar o Persistence.xml nao se esqueca de que o Tomcat nao tem um EJB container, entao tenha em mente que vc tera que deixar transaction-type como "RESOURCE_LOCAL"
e setar trocar a tag < jta> pela < non-jta-data-source> , setar tambem o database dialeto e o look default para o tomcat data source.
Neste link voce podera encontrar bons exemplos em como configurar o Tomcat com JPA, http://wiki.eclipse.org/EclipseLink/Examples/JPA/Tomcat_Web_Tutorial#JNDI_Datasource_Setup

Com isso voce com alguma nocao de JBoss Seam ja podera criar uma aplicacao usando o Tomcat. Nao se esqueca que para rodar aplicacoes no Tomcat elas precisam ser .WAR e nao .EAR ok. Se voce quizer usar recursos EJB eu repito novamente aqui, que voce use um AS que tenha EJB container, porem existe um workaround que e instalando o jboss-embedded . Porem ai sera necessario ler o tutorial do mesmo para ver como fazer a configuracao para rodar EJB dentro do Tomcat. Ao meu ver isso so e valido se voce ja possui aplicacoes rodando com o Tomcat e precisa incluir uma aplicacao que use EJB, caso contrario, repetindo, use um AS que tenha suporte para EJB.
Pessoal qualquer duvida mandem posts que vou responder.
Final de semana devo publicar o codigo de um micro projeto usando Seam e Tomcat.
Obrigado.