JBOSS DataSource em app JPA

Seguinte, tenho uma aplicação JPA que roda tranquilamente no tomcat e tudo mais, eis que agora eu preciso colocá-la pra funcionar no JBOSS (no qual sou iniciante).

Eis aqui as configurações que eu fiz seguindo recomendações de alguns tutoriais:

JPAHelper.java

static {
		try {
			sessionFactory = Persistence.createEntityManagerFactory("manager");
		} catch (RuntimeException e){
			e.printStackTrace();
			throw e;
		}
	}

meu persistence.xml

<persistence version="1.0"
	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">
	<persistence-unit name="manager">
		<provider>org.ejb.hibernate.HibernatePersitence</provider>
		<jta-data-source>java:/aplicacaoDS</jta-data-source>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
			<property name="hibernate.jdbc.use_streams_for_binary" value="true"/>
			<property name="hibernate.query.substitutions" value="true 1, false 0, yes 'Y', no 'N'"/>
			<property name="hibernate.show_sql" value="false"/>
			<property name="hibernate.format_sql" value="false"/>
		</properties>
	</persistence-unit> 
</persistence>

aplicacao-ds.xml no diretório deploy do profile default

<datasources>
  <local-tx-datasource>
    <jndi-name>aplicacaoDS</jndi-name>
    <connection-url>jdbc:mysql://10.1.2.35:3306/aplicacao</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

quando starto o jboss, tudo parece estar às mil maravilhas, a aplicação até carrega a tela inicial sem problemas (já que neste momento não é preciso acessar o banco de dados), mas eis que, ao meu primeiro acesso ao banco de dados(que usa o JPAHelper), ocorre um PersistenceException:
No Persistence provider for EntityManager named manager…

O que estou fazendo de errado na configuração da aplicação?

Você verificou se o arquivo persistence.xml está na pasta correta na sua aplicação lá no JBoss?
O diretório correto é: \WEB-INF\classes\META-INF\persistence.xml
Qual framework web você ta usando? JBoss Seam?

Estou usando o JBOSS 4.2.2GA, e sim, ele está na árvore indicada…

talvez seja importante, embora acredite que seja pouco provável, existe um outro arquivo, o jboss-web.xml em meu WEB-INF que contém a seguinte propriedade - /. Alguém tem alguma idéia do que pode ser?

Estamos melhorando o erro, mas até agora nada… abaixo os arquivos que configurei

jboss-web.xml (dentro do meu WEB-INF)

	<resource-ref>
        <res-ref-name>jdbc/aplicacaoDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <jndi-name>java:aplicacaoDS</jndi-name>
    </resource-ref>

trecho do meu web.xml

	<resource-ref>
		<description>conexao</description>
		<res-ref-name>jdbc/aplicacaoDS</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>

trecho do meu persistence.xml

<persistence-unit name="manager">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>jdbc/aplicacaoDS</jta-data-source>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
			<property name="hibernate.jdbc.use_streams_for_binary" value="true"/>
			<property name="hibernate.query.substitutions" value="true 1, false 0, yes 'Y', no 'N'"/>
			<property name="hibernate.show_sql" value="false"/>

trecho do aplicacao-ds.xml que está no deploy do jboss

<?xml version="1.0" encoding="UTF-8"?>  

<datasources>
  <local-tx-datasource>
    <jndi-name>comp/env/jdbc/aplicacao</jndi-name>
    <connection-url>jdbc:mysql://10.1.2.35:3306/senha_facil</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>

Agora a mensagem é HibernateException : could not find DataSource quando eu tento criar o EntityManagerFactory usando Persistence.createEntityManagerFactory(“manager”);… o ds que está dentro do jboss está fazendo bind corretamente (de acordo com o mostrado no JMX-Console), mas eu simplesmente não consigo associar o data source a esse maldito nome… Se alguem puder me dar uma luz ae ok!!!

Abraço a Todos

Tente assim:

ds.xml:

<datasources> <local-tx-datasource> <jndi-name>aplicacaoDS</jndi-name> <connection-url>jdbc:mysql://10.1.2.35:3306/senha_facil</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class>

persistence.xml:

        <jta-data-source>java:aplicacaoDS</jta-data-source>   

web.xml:

<resource-ref>   
       <res-ref-name>aplicacaoDS</res-ref-name>   
       <res-type>javax.sql.DataSource</res-type>   
</resource-ref> 

O arquivo jboss-web.xml nao e necessario.

Marco.

Fiz o que disse mrmarcondes:

Na primeira tentativa, removi o res-auth do web.xml e ele lançou uma excessão pedindo pra que eu o preenchesse… então deixei como estava anteriormente esta tag (Container) e aí ele lançou uma outra excessão :

(javax.naming.NamingException: resource-ref: java:aplicacaoDS has no valid JNDI binding. Check the jboss-web/resource-ref.)

Dessa forma, eu voltei com o jboss-web.xml, preenchi as tags resource dele… com os valores abaixo e voltei à estaca zero… não dá erro no deploy… ele faz o bind do ds normalmente e não dá erro na minha aplicação, mas quando do meu primeiro acesso ao meu EntityManagerFactory, ele retorna org.hibernate.HibernateException: Could not find datasource

	<resource-ref>
        <res-ref-name>java:aplicacaoDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <jndi-name>aplicacaoDS</jndi-name>
    </resource-ref>

Ocorre ainda que se eu preencher as tags de conexão com o banco no meu persistence(deixando de lado a tag jta-data-source), a minha aplicação funciona normalmente… Alguem sabe se existe alguma complicação ao utilizar este tipo de abordagem!!!

Lógico que eu prefiro que funcione do jeito tradicional, mas ocorre que já estou a dois dias tentando resolver este problema e não consigo… alguma luz?!