JPA no JBoss

Gostaria de saber como faz para utilizar JPA no JBoss.
Fiz um exemplo de JPA utilizando uma classe main, funcionou sem problemas. Fiz as alterações necessarias para criar um Servlet com as mesmas configurações, porém nao consigo carregar o arquivo persistence.xml.
Estou utilizando o JBoss 4.0.2.
O Servlet executa ate o momento de carregar a configuração, dai da erro.
Alguem sabe como fazer para carregar o EntityManagerFactory?

Aonde deve ficar o arquivo persistence.xml ?

Maracuja, obrigado pela ajuda,
o problema é a versão do JBoss, usando a versão 4.0.5 funcionou.

Isso não é necessário, trabalhando com servidor de aplicação ele mesmo pode injetar o EntityManager em sua classe.

@PersistenceContext(unitName = "suaUnitName")
protected EntityManager em;

Até…

[quote]
Isso não é necessário, trabalhando com servidor de aplicação ele mesmo pode injetar o EntityManager em sua classe.
Code:
@PersistenceContext(unitName = “suaUnitName”)
protected EntityManager em;

Até… [/quote]

Isto so vai funcinar dentro de um bean EJB3, em uma servlet não funciona. (no primeiro topico o criador citou: Fiz as alterações necessarias para criar um Servlet com as mesmas configurações).

[quote]
Isso não é necessário, trabalhando com servidor de aplicação ele mesmo pode injetar o EntityManager em sua classe.
Code:
@PersistenceContext(unitName = “suaUnitName”)
protected EntityManager em;

Até… [/quote]

Isto so vai funcinar dentro de um bean EJB3, em uma servlet não funciona. (no primeiro topico o criador citou: Fiz as alterações necessarias para criar um Servlet com as mesmas configurações).

Ops…
Não prestei atenção;

Nem eu, dupliquei o topico :frowning:

Exemplo, vc pode ter um arquivo como este XXXX-ds.xml onde XXXX pd ser um nome tipo myApp-ds.xml do diretório de deploy do Jboss

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

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/titan</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>

Com isso vc terá um datasource sob o JNDI com o nome MySqlDS.

PS:é necessário ter o driver jdbc do seu banco sob o diretório lib do servidor.

no persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence>
   <persistence-unit name="suaUnitName">
      <jta-data-source>java:/MySqlDS</jta-data-source>
   </persistence-unit>
</persistence>

Obtendo a factory


EntityManagerFactory factory = Persistence.createEntityManagerFactory(suaUnitName);

Pronto.

humm, o JBoss é o 4.0.5.GA;

[ ] 's