JBoss AS 7 + MySQL

Friday, 29. July 2011

Se você quer rodar sua aplicação no JBoss AS 7 e quer usar MySQL você precisa seguir alguns poucos passos.

Por exemplo, no persistence.xml você configura sua persistence-unit assim:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">
	<persistence-unit name="imobiliaria" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>java:/imobiliaria</jta-data-source>
		<properties>
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="false" />
			<property name="hibernate.hbm2ddl.auto" value="create-drop" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		</properties>
	</persistence-unit>
</persistence>

Sendo assim, com apenas um persistence-unit você não precisa configurar seu @PersistenceContext, ficando assim:

@PersistenceContext
EntityManager entityManager;

Caso você tenha mais de um persistence-unit em seu persistence.xml, você deverá usá-lo dessa forma:

@PersistenceContext(name="meu_persistence_unit_name")
EntityManager entityManager;

Além disso, também é necessário colocar o Driver como módulo pro JBoss AS 7.
Dentro da pasta onde você instalou o JBoss AS 7, existe a pasta “modules”, dentro dela existe a pasta “com”, dentro dela você criará a pasta “mysql”, e dentro dela, a pasta “main”.
Dentro da pasta main, você criará um arquivo chamado “module.xml” com o conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.mysql">
  <resources>
    <resource-root path="mysql-connector-java-5.1.17-bin.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
  </dependencies>
</module>

Onde em path=”mysql-connector-java-5.1.17-bin.jar” será o nome do seu mysql-connector. Este arquivo também deverá estar dentro da pasta: “modules/mysql/main”

Por fim, basta configurar o arquivo standalone.xml que está na pasta “jboss/standalone/configuration” adicionando o seu datasource, como abaixo:

<datasource jndi-name="java:/imobiliaria" pool-name="imobiliaria" enabled="true" jta="true" use-java-context="true" use-ccm="true">
   <connection-url>
      jdbc:mysql://localhost/imobiliaria
   </connection-url>
   <driver>
      com.mysql
   </driver>
   <security>
      <user-name>
         root
      </user-name>
   <password>

   </password>
   </security>
</datasource>

E adicionar o driver dentro do nó <drivers>:

<driver name="com.mysql" module="com.mysql">
   <xa-datasource-class>
      com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
   </xa-datasource-class>
</driver>

Como podem ver, é bem tranquilo. Segue abaixo um link relacionado ao assunto:

http://kousikraj.wordpress.com/tag/jboss-as-7-server-adapter-for-eclipse/ <- Instalando o adaptador do JBoss 7 no Eclipse