Monday, September 20, 2010

Configurar DataSource [Hibernate + Oracle + Tomcat 6] aplicação c/ Spring Roo

Criar e configurar um aplicativo c/ Spring Roo para usar JPA c/ Hibernate no Oracle é muito simples. Pelo terminal no "prompt" do Roo, inicialmente, são 5 comandos:
$ mkdir projetoteste
$ cd projetoteste
$ roo    //assumindo que o roo ja estava instalado
$ project --toplevelPackage br.com.yaw
$ persistence setup --provider HIBERNATE --database ORACLE --username eder --password 123

Esse último comando vai gerar um warning com a informação de que não foi possível encontrar o jar do Oracle no repositório Maven, a instalação do driver será manual.

Na realidade o Roo define a conexão com o banco de dados dentro do aplicativo, veja os arquivos META-INF/spring/database.properties e META-INF/spring/applicationContext.xml.

Simples assim! Agora seria usar outros comandos para criar as entidades, controladores e as telas, executando por exemplo no Tomcat 6. Veja a demo do Roo.

Mas como utilizar um DataSource definido no Tomcat? Nesse wiki algumas dicas de como configurar o DataSource no Tomcat.

A forma mais dificil de configurar o DataSource no projeto é ir ao arquivo META-INF/spring/applicationContext.xml e substituir  a definição do bean dataSource [BasicDataSource] por:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jdbc/MeuOracleDS"/>
</bean>

Ou via "prompt" do Roo no comando persistence setup:
$ persistence setup --provider HIBERNATE --database ORACLE
   --username eder --password 123 --jndiDataSource jdbc/MeuOracleDS

http://twitter.com/edermag
http://www.yaw.com.br/

No comments: